ValueType下的Equals代码(.net1.x和4.0缺2.0)

本文对比了 .NET 1.x 和 .NET 4.0 中 C# 的 Equals 方法实现细节,探讨了结构类型 hashcode 的生成方式,并指出《Effective C#》一书中关于此部分描述的不准确之处。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

.net1.x

 

.net4.0

 

 

顺便指正一下书中的错误《Effective C#》第十章中关于结构类型hashcode的结论:
值类型自带的GetHashCode是以其第一个成员的GetHashCode值作为其的返回值。


有的值类型都继承自 System.ValueType。System.ValueType 重写了 System.Object 提供的 Equals 方法实现。System.ValueType.Equals 方法在内部首先使用反射机制(本书20章将予以探讨)来得到类型所有的实例字段。

的我猜测是:为了性能,也行有了新的做法.

[1]不要盲从本书上的说教,要自己验证了才算数,更要注意一下论证的环境 .(三段论)
[2]可能.net的版本在变,情况同样会改变,除非是C#语言规范中认定的内容

 

所以我只能假设上面的代码适合于.net1.x

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值