vip*_*110 4 c# recursion operator-overloading operator-keyword
我有一个类,我想在c#中重载==运算符.我已经有一个正常的.Equals覆盖.当我尝试使用我的==运算符时,它在我的对象(Person)上给了我一个空引用异常.如果我尝试检查它是否为null,它将依次调用相同的运算符来检查它是否为null并创建一个无限循环.这似乎是一个巨大的缺陷,我无法找到正确的方法来做到这一点.
public static bool operator ==(Person person, object obj)
{
return person == null ? person.Equals(obj) : false;
}
public static bool operator !=(Person person, object obj)
{
return !(person == obj);
}
Run Code Online (Sandbox Code Playgroud)
使用(object)person == null强制它使用对象的==操作符(或使用ReferenceEquals).请参阅http://msdn.microsoft.com/en-us/library/ms173147(v=vs.80).aspx.
| 归档时间: |
|
| 查看次数: |
718 次 |
| 最近记录: |