Strings and Nulls in C#

A very common thing in coding is to want to see if you've been given a string or not.


In C#, a string is a reference to an object, and this reference can be null, or it can be a reference to a string, which can contain 0 or more characters.


When you want to see if you have a string or not, you need to first check to see if it's a null reference, and if it's not, then see if the string contains any characters.  This ends up looking something like:


  if (firstName != null && firstName.Length > 0)


    // do something with firstName 



If I'm calling a function that doesn't require a first name, I can pass in a null.  The disconnect is that if I'm, say, reading data from a text file and the file has a place where the name is going to be, the empty case for the string is simply going to be a string with no characters.


So someone has to say 'this string with no characters is really a null', or everywhere you access the string, you need to see if it's null.


I don't have any great insight to offer here; I just find it less than elegant.  I'd like a way to test to see if a string is both non-null and non-empty without having to do the two separate comparisons.