菜鸟问题:运算符重载 哈哈,C#将==认为是重载的==了,这样变成了自己调用自己即递归,且没有出口当然会出堆栈溢出了。o1.Equals(null)应该可以。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 o1本身是null值,用o1.Equals(null)岂不是要出异常?更惨的是,我也重载了Equals方法,里面就调用了“==”运算 !!!,怎么办? 先谢了! 哈哈,有趣的问题。。if(o1 && o2) return true; 不行吧?! o1何o2都不是bool型,怎么能用“&&”? 编译都过不去。我费老劲才找到一个办法不知行不行:用 Object.ReferenceEquals(o1, null)来分别判断o1是否为null。不只合适不,谢谢! 这样改吧,Equals有两个函数,静态的肯定不能override; public class A { private int objectID; public static bool operator == (A o1, A o2) { if(Object.ReferenceEquals(o1,o2)) return true; if(Object.Equals(o1, null) || Object.Equals(o2, null)) return false; if(o1.GetType() != o2.GetType() || o1.objectID != o2.objectID) { return false; } else { return true; } } public static bool operator != (A o1, A o2) { return !(o1 == o2);} } 只有BOOLEAN的才能用&&么???这样呢:if(o1);else if(o2);else return true; 还有一种if( ((Object)o1)==null && ((Object)o2)==null ) return true; to Lostinet:>>> 只有BOOLEAN的才能用&&么???好像在C#里是这样!我试了一下,好像第二种做法可以,多谢了!! 就是,怎么没想到向上造型呢!看来也用不着Object.ReferenceEquals()这样的函数了 求和排序函数 wince下加自定义控件 求助关于WinForm背景图片的问题 VS2005与VS2008区别大吗? 验证码识别程序 系统中涉及到的缓存的使用和清除问题 如何做?请高手指教 查询OrderItem表里面的总金额6000到7000的语句怎么查 blob的数据绑定问题 很郁闷,在winform下不知道怎么用listview来显示略缩图.哪位大侠有相关资料参考一下? 谁能给点编写qq类的通讯软件的资料呀!![300等待] 有谁用过.net的组件regasm.exe 各位大哥谁知道用c#做得非常漂亮的网站啊
if(o1 && o2) return true;
不只合适不,谢谢!
public class A
{
private int objectID;
public static bool operator == (A o1, A o2)
{
if(Object.ReferenceEquals(o1,o2)) return true; if(Object.Equals(o1, null) || Object.Equals(o2, null)) return false; if(o1.GetType() != o2.GetType() || o1.objectID != o2.objectID)
{
return false;
}
else
{
return true;
}
}
public static bool operator != (A o1, A o2)
{ return !(o1 == o2);}
}
这样呢:
if(o1);else if(o2);else return true;
if( ((Object)o1)==null && ((Object)o2)==null ) return true;
>>> 只有BOOLEAN的才能用&&么???
好像在C#里是这样!我试了一下,好像第二种做法可以,多谢了!!