All Objects Are Not Created Equal

No Comments »

C# object equality is one of those topics that seems easy on the surface but can get a little complicated when you dig into it.

Read the rest of this entry »

Reverse an Array

7 Comments »

It’s easy to reverse the contents of an array using C# generics:

Read the rest of this entry »

Params for Optional Arguments

No Comments »

The params keyword specifies a variable number of arguments to be passed to a constructor or method, such as:

public Test( string arg0, float arg1, params int[] args )
{
}

Read the rest of this entry »

Convert Generic ICollection

4 Comments »

As discussed in a previous article, Generics provides the ability to create strongly-typed collections in C#. Unfortunately, C# currently does not support generics variance, which would allow inheritance of generic types.

Read the rest of this entry »

Constructor Chaining

12 Comments »

When you want to share initialization code among multiple constructors, there are generally two approaches. 

Read the rest of this entry »

How to Cache an Object

No Comments »

For performance efficiency, you may wish to cache an object within another object. That sounds easy enough to do. But what if the object cannot be found? You have to take special care to ensure the object is not fetched repeatedly.

Read the rest of this entry »

Strings Don’t Add Up

4 Comments »

One way to format C# strings is to add strings together using the plus-sign operator, such as:

string fileStats =
    "Bytes=" + bytes.ToString() +
    ", Pages=" + pages.ToString() +
    ", Words=" + words.ToString();

This code will correctly produce the desired output but is inefficient and does not scale as well.

Read the rest of this entry »