
public class OrderID{ public string ID { get; private set; } public OrderID(string ID) { ID = ID; } public overrIDe bool Equals(object obj) { if (obj is OrderID) { return ((OrderID)obj).ID == ID; } else return false; } public overrIDe string ToString() { return ID; }} 但是,当我以下面的方式测试它时,它返回false:
static voID Main(string[] args){ OrderID i1 = new OrderID("Hello"); OrderID i2 = new OrderID("Hello"); bool test = i1 == i2; Console.Writeline(test.ToString()); Console.ReadKey();} 问题是什么?当我尝试单步执行它时,我的覆盖甚至没有进入.
解决方法 对象的Equals()方法与’==’运算符不同.您需要重载类型上的’==’运算符,或调用i1.Equals(i2)而不是i1 == i2.MSDN Guidelines for Overloading Equals() and Operator ==
总结以上是内存溢出为你收集整理的c# – 重写等于运算符全部内容,希望文章能够帮你解决c# – 重写等于运算符所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)