这可能听起来像一个新手问题,但是以下是:
string var;
if (var == null)
并且
string var;
if (var == string.Empty)
相同吗?
重复
这可能听起来像一个新手问题,但是以下是:
string var;
if (var == null)
并且
string var;
if (var == string.Empty)
相同吗?
重复
@Jay 是正确的,它们不是完全一样的。 String.IsNullOrEmpty()
是一个方便的方法,用于检查null和""。
不,它们不是相同的。
string.Empty
和 ""
是相同的,都是一个实际的对象:长度为0的字符串。而null
表示没有对象。
它们并不相同,mscorlib 中 String.IsNullOrEmpty(string) 的实现证明了这一点:
public static bool IsNullOrEmpty(string value)
{
if (value != null)
{
return (value.Length == 0);
}
return true;
}
NULL
,而它是否为空并不重要(在面向对象设计中)。例如,你有一个方法,它将返回NULL
或一个字符串
。你这样做是因为null意味着操作失败,而空字符串意味着没有结果。