gpt4 book ai didi

java - 为什么 C# Object 类有两个 equals 方法

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:45:15 26 4
gpt4 key购买 nike

作为C#的新手想知道为什么C#的Object类有两个Equals方法如下签名。

public virtual bool Equals(object obj);
public static bool Equals(object objA, object objB);

而在 Java 中只有 一个 equals 方法。

最佳答案

首先

public virtual bool Equals(object obj);

是比较对象的标准、典型等方法:if this equals to obj 类似Java的

第二

public static bool Equals(object objA, object objB); 

是一种糖,让你不用每次想比较objAobjB<时,就不要把objAnull比较实例

https://referencesource.microsoft.com/#mscorlib/system/object.cs,f2a579c50b414717

public static bool Equals(Object objA, Object objB) 
{
if (objA==objB) {
return true;
}
if (objA==null || objB==null) {
return false;
}
return objA.Equals(objB);
}

Java 确实有类似的方法:

https://docs.oracle.com/javase/7/docs/api/java/util/Objects.html#equals(java.lang.Object,%20java.lang.Object)

// Please, note Objects instead of Object
Objects.equals(Object a, Object b);

关于java - 为什么 C# Object 类有两个 equals 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40968848/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com