The best practice is selecting the most appropriate one.
.Net Framework 4.0 Beta 2 has a new IsNullOrWhiteSpace() method for
strings which generalizes the IsNullOrEmpty() method to also include other white
space besides empty string.
The term “white space” includes all characters that are not visible on
screen. For example, space, line break, tab and empty string are white
space characters*.
Reference : Here
For performance, IsNullOrWhiteSpace is not ideal but is
good. The method calls will result in a small performance penalty.
Further, the IsWhiteSpace method itself has some indirections that can
be removed if you are not using Unicode data. As always, premature
optimization may be evil, but it is also fun.
Reference : Here
Check the source code (Reference Source .NET Framework 4.6.2)
IsNullorEmpty
[Pure]
public static bool IsNullOrEmpty(String value) {
return (value == null || value.Length == 0);
}
IsNullOrWhiteSpace
[Pure]
public static bool IsNullOrWhiteSpace(String value) {
if (value == null) return true;
for(int i = 0; i < value.Length; i++) {
if(!Char.IsWhiteSpace(value[i])) return false;
}
return true;
}
Examples
string nullString = null;
string emptyString = "";
string whitespaceString = " ";
string nonEmptyString = "abc123";
bool result;
result = String.IsNullOrEmpty(nullString); // true
result = String.IsNullOrEmpty(emptyString); // true
result = String.IsNullOrEmpty(whitespaceString); // false
result = String.IsNullOrEmpty(nonEmptyString); // false
result = String.IsNullOrWhiteSpace(nullString); // true
result = String.IsNullOrWhiteSpace(emptyString); // true
result = String.IsNullOrWhiteSpace(whitespaceString); // true
result = String.IsNullOrWhiteSpace(nonEmptyString); // false
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…