Svi*_*ish 21 c# static equals object
假设你有两个不同的类,每个类都有自己的Equals实现; 使用哪一个?如果只有一个人有一个怎么办?或者他们都没有?以下任何一行是否相同?
object .Equals( first, second )
first .Equals( second )
second .Equals( first )
Run Code Online (Sandbox Code Playgroud)
我猜测前两个可能是等价的,但我真的不知道.
它到底是做什么的?
Jon*_*eet 40
基本上它做了三件事:
first.Equals(second)排序不应该的问题,如果这两个值都乖巧平等的实现,作为平等应该被实现,使得x.Equals(y)暗示y.Equals(x).不过,我已经安装了离线文档中则状态first.Equals(二)(或objA.equals(objB)使用真正的参数命名)中规定.该在线文档并没有提到这一点,有趣的是.
为了使所有这些具体,实现可能如下所示:
public static bool Equals(object x, object y)
{
if (x == y) // Reference equality only; overloaded operators are ignored
{
return true;
}
if (x == null || y == null) // Again, reference checks
{
return false;
}
return x.Equals(y); // Safe as we know x != null.
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8624 次 |
| 最近记录: |