This tip explains how to implement and use a Generic
IfNull Extension Method in your project.
While working on my current C# project after completing an MS Access VBA project, I really missed the
Nz function, so I set about creating one. I initially thought about using a static method but didn't like the idea of that as it wouldn't look nice in the code. I then read How does it work in C#? - Part 3 (C# LINQ in detail) by Mohammad A Rahman and it reminded me about Extension Methods so I gave it a go.
If you would like more extension methods there are some very useful ones in the article Extension Methods in .NET that I found to make sure I wasn't duplicating.
Using the code
In your project/solution, create a class and put in the following code:
public static class Extensions
public static T IfNull<T>(this T source, T valueIfNull)
if (source is string)
string temp = source as string;
if (source is StringBuilder)
StringBuilder temp = source as StringBuilder;
if (temp == null)
if (temp.Length != 0)
if (source != null)
With this extension method, you can add custom code to handle specific classes as I have done with the
StringBuilder class. This example handles a zero length instance.
To use the extension method in your project, just reference the namespace and project/assembly and the method will be available to use like this:
string salutation = string.Empty;
Points of Interest
Changing the namespace of the class to
System will allow you to use the extension throughout your project but I'm not sure if that is a good practice or not.
Been a professional programmer for 2 years working in C# and VBA working in the energy industry