String.IsNullOrEmpty(myString)vs myString!= null

Asa*_*sad 6 c# string null-string

哪三个在这三个中更好?

string myString = ""; 
String.IsNullOrEmpty(myString);

vs

string myString = "";
if(myString.Length > 0 || myString != null)

vs 

string myString = "";
if (m.Length > 0 | m != null)
Run Code Online (Sandbox Code Playgroud)

前者更清楚,但这些之间有任何性能差异吗?如果字符串从不为空,如果从文本框中取出,可能是空的但不是空的,该怎么办?

Mar*_*ell 18

好吧,问题中的版本:

if(myString.Length > 0 || myString != null)
Run Code Online (Sandbox Code Playgroud)

肯定会更糟,因为你应该测试null 第一(未秒) -理想短路上null,这样你就不会尝试调用.Length.但一般来说我只是用string.IsNullOrEmpty.如果需要,您可以随时编写扩展方法以使其更简洁(您可以在null值上调用扩展方法).

static bool HasValue(this string s) {
    return !string.IsNullOrEmpty(s);
}
Run Code Online (Sandbox Code Playgroud)

  • @Marc Gravell:我意识到这个方法是静态的,但是当在一个实例变量上调用它时,并不是每个人都可以判断这样的调用是否会抛出一个空引用异常. (4认同)