gpt4 book ai didi

C#:为什么没有自动生成equals/gethashcode/==/!=?

转载 作者:太空宇宙 更新时间:2023-11-03 19:04:58 24 4
gpt4 key购买 nike

<分区>

我想知道是否有特定原因导致 C# 没有自动生成 EqualsGetHashCodeoperator ==, operator != 适用于引用类型中的值比较。

*解释:我没有看到一种简单的方法来快速请求对引用类型的值/内容进行“比较实际对象”操作。来自 C++ 背景,我的印象是它应该由编译器根据用户的简单请求自动完成。缺少该功能很可能表明它可能违反语言的“设计目标”/“愿景”/“哲学”。所以我想知道这个功能被认为不重要的原因是什么。

--原文--

据我所知,Equals 几乎相当于与 null 的比较、尝试转换和逐字段比较。

GetHashCode 几乎相当于使用某些操作(乘以溢出、异或等)的成员的所有哈希值的组合。

据我所知,它应该是自动化的:方法应该默认生成,或者应该有一种简单的方法来请求默认实现。但是,没有这样的事情。为什么?

据我了解,这要么是持续多年的大规模技术监督,要么是某种我不知道的语言哲学。

那么,这是什么原因呢?

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