更简单的写空或空的方式?

时间:2011-10-02 12:40:06

标签: c# .net string null

我确定我在这里错过了一些东西。对于某个项目,我需要检查字符串是空还是空。

有没有更简单的方式来写这个?

if(myString == "" || myString == null)
{
   ...

5 个答案:

答案 0 :(得分:37)

是的,确实存在String.IsNullOrEmpty辅助方法:

if (String.IsNullOrEmpty(myString)) {
    ...
}

答案 1 :(得分:5)

if (string.IsNullOrEmpty(myString)) {
  ...
}

或者你可以利用扩展方法中的一个怪癖,它们允许 this 为null:

static class Extensions {
    public static bool IsEmpty(this string s) {
        return string.IsNullOrEmpty(s);
    }
}

然后让你写:

if (myString.IsEmpty()) {
  ...
}

虽然你可能应该选择另一个名字而不是'空'。

答案 2 :(得分:0)

如果您使用的是.NET 4,则可以使用

if(string.IsNullOrWhiteSpace(myString)){

}

否则:

if(string.IsNullOrEmpty(myString)){

}

答案 3 :(得分:0)

为了避免空检查你可以使用??操作

var result = value ?? "";

我经常将它用作警卫,以避免在方法中发送我不想要的数据。

JoinStrings(value1 ?? "", value2 ?? "")

它还可用于避免不必要的格式化。

string ToString()
{
    return "[" + (value1 ?? 0.0) + ", " + (value2 ?? 0.0) + "]";
}

这也可以在if语句中使用,它不是很好但有时可以很方便。

if (value ?? "" != "") // Not the best example.
{
}

答案 4 :(得分:-2)

//如果字符串未定义为null,那么 IsNullOrEmpty 它的效果很好,但如果字符串定义为null,则trim将抛出异常。

if(string.IsNullOrEmpty(myString.Trim()){
 ...
}

//您可以使用 IsNullOrWhiteSpace ,它可以很好地用于字符串中的多个空格.i.e它也会为多个空格返回true

 if(string.IsNullOrWhiteSpace (myString.Trim()){
     ...
    }