在C#中检查null和string.Empty

时间:2009-01-23 02:23:24

标签: c# .net

这可能听起来像一个菜鸟问题,但是:

string var;
if (var == null)

string var;
if (var == string.Empty)

同样的?

  

复制

     

What's the Difference between String.Empty and Null?In C#, should I use String.Empty or Null?

5 个答案:

答案 0 :(得分:31)

@Jay是对的,他们不一样。 String.IsNullOrEmpty()是检查null和“”的便捷方法。

答案 1 :(得分:19)

不,他们不一样。

string.Empty""相同,它是一个实际对象:一个长度为0的字符串。 null表示没有对象。

答案 2 :(得分:6)

它们不一样,mscorlib中String.IsNullOrEmpty(string)的实现演示了它:

public static bool IsNullOrEmpty(string value)
{
    if (value != null)
    {
        return (value.Length == 0);
    }
    return true;
}

答案 3 :(得分:3)

不,他们不是。第一个检查变量是否已初始化或稍后是否设置为“null”。第二个检查变量的值是否为“”(空)。 但是,你不应该使用它们。你应该使用string.IsNullOrEmpty(var)。

答案 4 :(得分:0)

但有时你想知道字符串是否为NULL并且它是空的(在OO设计中)并不重要。例如,您有一个方法,它会返回NULLstring.,因为null表示操作失败,空字符串表示没有结果。

在某些情况下,您希望在其他对象中采取任何进一步操作之前知道它是否失败或者是否没有结果。