Func delegate with no return type

All Func delegates return something; all the Action delegates return void. Func<TResult> takes no arguments and returns TResult: public delegate TResult Func<TResult>() Action<T> takes one argument and does not return a value: public delegate void Action<T>(T obj) Action is the simplest, ‘bare’ delegate: public delegate void Action() There’s also Func<TArg1, TResult> and Action<TArg1, TArg2> (and … Read more

How do you do a deep copy of an object in .NET? [duplicate]

Important Note BinaryFormatter has been deprecated, and will no longer be available in .NET after November 2023. See BinaryFormatter Obsoletion Strategy I’ve seen a few different approaches to this, but I use a generic utility method as such: public static T DeepClone<T>(this T obj) { using (var ms = new MemoryStream()) { var formatter = … Read more

C# Interfaces. Implicit implementation versus Explicit implementation

Implicit is when you define your interface via a member on your class. Explicit is when you define methods within your class on the interface. I know that sounds confusing but here is what I mean: IList.CopyTo would be implicitly implemented as: public void CopyTo(Array array, int index) { throw new NotImplementedException(); } and explicitly … Read more

Which method performs better: .Any() vs .Count() > 0?

If you are starting with something that has a .Length or .Count (such as ICollection<T>, IList<T>, List<T>, etc) – then this will be the fastest option, since it doesn’t need to go through the GetEnumerator()/MoveNext()/Dispose() sequence required by Any() to check for a non-empty IEnumerable<T> sequence. For just IEnumerable<T>, then Any() will generally be quicker, … Read more

How do I get the current username in .NET using C#?

Option A) string userName = System.Security.Principal.WindowsIdentity.GetCurrent().Name; Returns: NetworkName\Username Gets the user’s Windows logon name. Details: https://docs.microsoft.com/en-us/dotnet/api/system.security.principal.windowsidentity Option B) string userName = Environment.UserName Returns: Username Gets the user name of the person who is associated with the current thread. Details: https://docs.microsoft.com/en-us/dotnet/api/system.environment.username

Embedding DLLs in a compiled executable

I highly recommend to use Costura.Fody – by far the best and easiest way to embed resources in your assembly. It’s available as NuGet package. Install-Package Costura.Fody After adding it to the project, it will automatically embed all references that are copied to the output directory into your main assembly. You might want to clean … Read more

C# Equivalent of SQL Server DataTypes

This is for SQL Server 2005. There are updated versions of the table for SQL Server 2008, SQL Server 2008 R2, SQL Server 2012 and SQL Server 2014. SQL Server Data Types and Their .NET Framework Equivalents The following table lists Microsoft SQL Server data types, their equivalents in the common language runtime (CLR) for … Read more

Array versus List: When to use which?

It is rare, in reality, that you would want to use an array. Definitely use a List<T> any time you want to add/remove data, since resizing arrays is expensive. If you know the data is fixed length, and you want to micro-optimise for some very specific reason (after benchmarking), then an array may be useful. … Read more

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)