等値演算子(==)とEqualsメソッド

2つの値が等しいか調べる、等値演算子(==)とEqualsメソッドの違い: .NET Tips: C#, VB.NET

処理

参照型比較の場合はどちらの比較方法も、同じオブジェクトを参照しているか比較する。
値型比較の場合はどちらの比較方法も、同じ値であるか比較する。

早さ

どちらもおなじくらいらしい。

注意

参照型クラスではEqualsメソッドをオーバーライドしても、等値演算子は規定の実装が存在するから
オーバーロードするなとMSのガイドラインに記載されている。*1その為に
ユーザー作成クラスで、Equalsメソッドでは値型比較を行い
等値演算子では参照型比較を行うといった動きになる恐れがある。
ちなみに、String型ではどちらの比較方法も値型比較を行う。

どう使い分けるか

値比較を行う場合は、Equalsメソッドを使用する。
参照比較を行う場合は、等値演算子を使用する。

*1:http://msdn.microsoft.com/ja-jp/library/7h9bszxx(VS.80).aspx