编程语言
首页 > 编程语言> > obj1.Equals(obj2)和c#中的静态Object.Equals(obj1,obj2)有什么区别?

obj1.Equals(obj2)和c#中的静态Object.Equals(obj1,obj2)有什么区别?

作者:互联网

从Microsoft的文档中,两个Equals方法基本相同.但我偶然发现了一些非常奇怪的事情.
在我的Silverlight项目中,我有两个同一类的实例覆盖了Equals.
如果我要求inst1.Equals(inst2)或inst2.Equals(inst1),我总是得到结果.但是Object.Equals(inst1,inst2)返回false.这怎么可能?

有任何想法吗?

谢谢,
罗茨科

解决方法:

obj1.Equals假定obj1不为null. object.Equals甚至可以在空值上工作.这并不能解释你所看到的行为;我认为你应该提供一些代码来重现它以获得更好的答案.

标签:c,iequatable
来源: https://codeday.me/bug/20190722/1497547.html