这可能听起来像一个菜鸟问题,但是:
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?
答案 0 :(得分:31)
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设计中)并不重要。例如,您有一个方法,它会返回NULL
或string.
,因为null表示操作失败,空字符串表示没有结果。
在某些情况下,您希望在其他对象中采取任何进一步操作之前知道它是否失败或者是否没有结果。