为什么ReferenceEquals()比==更快

时间:2013-11-05 15:33:06

标签: c# .net

我运行以下代码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更快......

1 个答案:

答案 0 :(得分:6)

如果没有看到任何代码,很难说,但是:

这可能是因为有问题的类已经实现了==运算符,因此它不会比较引用。相反,它可能以某种方式比较对象的内容,这当然会慢得多。

string类就是这样做的。)