public class User
{
public string Name {get; set; }
public override bool Equals(object obj)
{
if(obj == null) return false;
if(GetType() != obj.GetType()) return false;
User p = (User)obj;
return Name.Equals(p.Name); // 1
return Name == p.Name; // 2
}
}
重写 Equals 方法的正确方法是什么?
选项 1 - 在 Name 中的字符串上调用 Equals
选项 2 - 通过 == 进行比较
或者这些是等效方法?
在我看来,最好在这里使用字符串来比较字符串
string.Equals
,此外,您还可以在那里设置一个参数:区分大小写、不区分大小写等。我会写类似这样的东西。
如果我的观点还不够,这里有一个来自.NET 深处的例子,类
HttpMethod
: