Keep in mind, even with the addition of nullable value types in .NET 2.0, there is no string? declaration. The standard string type continues to allow for storage of either null or "", which are different values. (The empty string "" has the exact same value as string.Empty/String.Empty.) Thus, this function is good for checking for two related, but different, values.