0

次のコードを 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 より速い理由を教えてください...

4

1 に答える 1

6

コードを見ずに言うのは難しいですが、次のとおりです。

これはおそらく、問題のクラスが==演算子を実装しているため、参照を比較しないためです。代わりに、何らかの方法でオブジェクトの内容を比較している可能性が高く、もちろんかなり遅くなります。

(stringたとえば、クラスはこれを行います。)

于 2013-11-05T15:34:27.063 に答える