关于在字符串上使用.Equals()
或==
,以下是检查string.Empty
和null
个对象的问题。
在比较string.Empty
和null
个对象时,我应该使用==
还是应该使用.Equals()
?
// Add vars to instance variables
for (int i = 0; i < paramFirstList.Count; i++)
{
// if the key is null, replace it
// with a "null" string
if (paramFirstList[i] == null)
{
_firstList.Add("null");
}
else if (paramFirstList[i] == string.Empty)
{
_firstList.Add("empty");
}
else
{
// Do something
}
}
P.S。我理解最好将null
和string.Empty
存储为对象类型,但出于这个特殊目的,我需要将它们存储为字符串表示形式:)。
P.P.S。为了清晰起见,添加了匈牙利符号
答案 0 :(得分:4)
您应该始终支持==超过Equals
。后者是基类Object
类型的方法,在这种情况下将进行无用的转换。
如果您要检查string
值是空还是空,请使用String.IsNullOrEmpty
方法。相反,如果您需要采取不同的行动,那么请执行以下操作:
if (value == null)
{
//do stuff
}
else if (value == string.Empty)
{
// do other stuff
}
修改强>
正如评论中指出的, 是Equals
上的一个重载string
方法,它接收string
参数。不过,我认为你应该养成使用==的习惯。它只是更好的恕我直言。
答案 1 :(得分:3)
如果您关注null
,则应使用string.IsNullOrEmpty()
,或者string.IsNullOrWhitespace()