C# .NET Null-checking params array
Do you need to null check a "params" array?
The C# programming language allows for the creation of methods that take an arbitrary number of arguments via the params
keyword. Although I have used that feature many times, and null-checked the array every time, I have never really stopped to think about whether the array is or is not null,until now. Is it necessary to null-check the . . .
C# .NET Create KeyValuePairs and Tuples the Easy Way 'a'.Tpl("ABC")
More with Extension Methods and Implied Generic Arguments
I have previously written an article entitled "C# .NET -- Implied Generics in Extension Methods:
A Really Cool Way to Raise Events". This new article extends upon that to easily create Tuple
objects and KeyValuePair
structs.
As you may recall from the mentioned article, the C# compiler has a really awesome ability to . . .
C# .NET - Using an Enum to Get a Resource
There are a variety of reasons one might want to get a resource associated with an enum
element. For example, it might be necessary to find an error message to display to a user or return in a web service call. Or, perhaps you need to find an icon associated with a status, etc. This article shows how to find a string from a resource file . . .
C# .NET Enum, Constant and Static ReadOnly
Enums Can Behave Like Constants
The C# .NET language has constants, and it has variables. A constant is essentially a value that is known at compile-time, whereas a variable is essentially a placeholder of a specific type for a value that can change at runtime. An enum
is a bit of an anomaly because it defines a type with unique set of elements backed by an integer type . . .
C# .NET -- Implied Generics in Extension Methods
A Really Cool Way to Raise Events
I have previously written an article on extensions methods, which included some information about using generics with extension methods. Since that time, I have stumbled across something I did not previously realize:
If the compiler can figure out the generic type from one of the parameters passed into the extension method, you . . .
.NET Interlocked Operations
System.Threading.Interlocked Class
In a multi-threaded application, synchronization is key to protect data integrity. There are numerous ways to accomplish data synchronization in .NET and C#, such as the commonly used System.Threading.Monitor
.NET Framework class and corresponding C# lock
statement. But, when it comes to super-fast synchronization, nothing beats the . . .