我运行以下代码10000次(a和b都是C类的实例)
1.ReferenceEquals(a,b) 0.1 ms
2.a==b 0.7 ms
3.a.Equals(b) 0.8 ms
你能告诉我为什么1比2和3更快......
答案 0 :(得分:6)
如果没有看到任何代码,很难说,但是:
这可能是因为有问题的类已经实现了==
运算符,因此它不会比较引用。相反,它可能以某种方式比较对象的内容,这当然会慢得多。
(string
类就是这样做的。)