gpt4 book ai didi

c# - c# 中的 Equals 是按引用还是按值进行比较?

转载 作者:行者123 更新时间:2023-11-30 13:13:03 25 4
gpt4 key购买 nike

var A = new obj(1,2,3); //parameters are just used to set some fields no randomness is involved
var B = A;
var C = new obj(1,2,3);

我想确定我的理解是否正确

  • A.Equals(B).Equals(C)(真)
  • A == C(假)
  • A == B(真)

Equals() 是否比较两个对象之间所有字段和属性的值,我可以肯定地信任它吗?

Equals() 也使用反射吗?

最佳答案

这取决于你怎么写。

基本 object.Equals() 方法严格按引用比较实例。

您可以在自己的类中覆盖 Equals() 以执行任何您想要的操作。

最后,ValueType.Equals()(由所有结构继承)使用反射按值进行比较;你应该在制作自己的结构时覆盖它。

关于c# - c# 中的 Equals 是按引用还是按值进行比较?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20871541/

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