当前位置: 首页 > 编程语言 > C#

staticobject.Equals如何检查是否相等?分享

时间:2023-04-10 13:17:31 C#

C#:staticobject.Equals如何检查是否相等?假设你有两个不同的类,每个类都有自己的Equals实现;使用哪一个?如果只有一个人有一个怎么办?还是两者都不是?以下任何一行是否相同?object.Equals(first,second)first.Equals(second)second.Equals(first)我猜前两个可能是等价的,但我真的不知道。它到底是做什么的?基本上它做了三件事:如果两个值都具有良好的相等性实现,则顺序无关紧要,因为应该实现相等性,使得x.Equals(y)意味着y.Equals(x)。但是,我安装的离线文档确实指出first.Equals(second)(或objA.equals(objB)使用真实参数名称)。有趣的是,在线文档没有提到这一点。为了使所有这些具体化,实现可能如下所示:publicstaticboolEquals(objectx,objecty){if(x==y)//仅引用相等;忽略重载运算符{returntrue;}if(x==null||y==null)//同样,引用检查{returnfalse;}返回x.Equals(y);//安全,因为我们知道x!=null。}默认情况下,对象等价是由对象在内存中的地址决定的。如果两个实例具有相同的内存地址,则它们是相等的。但是,这可以在对象中重载,以便开发人员可以比较两个不在同一内存位置但仍被视为相等的对象。例如,如果您有一个数据访问层,其中每个对象都有一个来自数据库的数据记录ID,您可以根据ID比较对象是否相等。您可以重载运算符来生成此功能。以上是C#学习教程:C#:staticobject.Equals如何判断是否相等?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: