String.IsNullOrEmpty - performance considerations, bugs
November 20, 2008
I once read that .Net's String.IsNullOrEmpty performs better, and is safer, than just checking to see if a particular string has an empty value. I.e. replace
if (myString == "") or
if (myString.Equals(string.Empty)) or
if (myString.Length == 0) with
if (String.IsNullOrEmpty(myString)). It is certainly easy to read, and points out that the string should really be checked for
null value before doing anything else.
Wanting to double-check my memory before recommending this method to a colleague, I found a few very interesting blog posts that suggest to me that I should avoid its usage:
- DANGER ! String.IsNullOrEmpty can lead to runtime Null exceptions !!, it looks like this isn't fully explained yet. Might not be an issue in .Net 3.0/3.5 frameworks, but I'm still using .Net 2.0, so it is best to heed this warning.
- string.IsNullOrEmpty Samples, it seems the performance is good, but not the best. So where performance matters, go with the longest, safest version:
if (myString == null || myString.Length == 0)