等値演算子(==)とEqualsメソッド
2つの値が等しいか調べる、等値演算子(==)とEqualsメソッドの違い: .NET Tips: C#, VB.NET
処理
参照型比較の場合はどちらの比較方法も、同じオブジェクトを参照しているか比較する。
値型比較の場合はどちらの比較方法も、同じ値であるか比較する。
早さ
どちらもおなじくらいらしい。
注意
参照型クラスではEqualsメソッドをオーバーライドしても、等値演算子は規定の実装が存在するから
オーバーロードするなとMSのガイドラインに記載されている。*1その為に
ユーザー作成クラスで、Equalsメソッドでは値型比較を行い
等値演算子では参照型比較を行うといった動きになる恐れがある。
ちなみに、String型ではどちらの比較方法も値型比較を行う。
どう使い分けるか
値比較を行う場合は、Equalsメソッドを使用する。
参照比較を行う場合は、等値演算子を使用する。