牛人也会犯错误 -- 对Jeffrey Ritcher的C#相等判断的考察


    Jeffrey Ritcher是我们众人敬仰的牛人。从Windows32时代的SDK编程开始,到目前越来越强劲(从技术到商业)的.Net平台,Ritcher都起着技术导师和精神导师的双重领袖的作用,值得我们尊敬。然而,本文不打算进行膜拜仪式,而是想提及Ritcher一点点小错误,就是作者在读《Applied.Microsoft.NET.Framework.Programming》时发现其对于相等判断一节的一些阐述及实践是有问题的,主要是在值类型相等判断的时候未考虑传入参数的隐式转换的历史,在第二种引用转换的时候对于Base.Equals中包含了Object.Equals(ref,ref)的判断也语焉不详。
    细心的读者会发现,这段有问题的阐述和代码的实践到了第二版《CLR Via C#》中,缩减为很短的一个章节,仅剩下原则部分了,就连正确的部分也被砍掉了,看来Ritcher也觉得这个相等判断很棘手嘞,而且Ritcher是个完美主义者,要么全做,要么不做。其实Ritcher的初衷是很厚道的,想给大家提供一种通用的高效的判断相等的方法,无奈程序代码这东西实在变化太复杂,牛人也不能将其较简洁地进行穷尽。我要向Ritcher的努力表示感谢,并愿意为我的不太厚道道个小歉。况且,第一版的代码也不是决然不能使用,只要注意相关类型的隐式转换即可,当然这个“注意”将是比较耗精力的。
    另外,我们大可以放心,牛人不是神,只要努力做到最好,生命便有意义。
 
转载一篇关于Ritcher的文章:
Jeffrey Ritcher的一堂课
花了两天时间,听了Jeff的.NET Threading in C#,受益非浅。
原本参加这个培训是希望见识大师风采,不过学到的东西更是超出自己的预期。回头看看自己以前写的代码,很多地方都值得商榷。
很佩服Jeff在连续讲了4天之后,还能如此热情和耐心地解答大家的问题,给我留下最深刻的记忆,不是技术,而是他这么一段话:
It's poor to write books, which will NOT bring you much money indeed. It requires you staying alone in a room, without talking to anybody, but just typing. Indeed, delivering training like today earns much more money. But I choose to write books, because it could help people, could make impact to the world, I am proud of what I have done, it helps people to write better programs, to make the world better...

 
再次向Ritcher致敬! 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值