重複の可能性:
参照型の 2 つのインスタンスを比較するための「ベスト プラクティス」とは?
無限再帰なしで '==' 演算子のオーバーロードで null をチェックするにはどうすればよいですか?
「Criterion」というクラスがあり、== 演算子を実装したいのですが、次の問題に苦労しています。
== 演算子を実装すると、インスタンスの 1 つまたは両方が null かどうかを確認しますが、それを行うと、== の再帰呼び出しが発生し、「StackOverflow」(he he) 例外が発生します。
技術的には、== をオーバーライドせずに Equals 演算子を実装できますが、== 演算子を実装すると、コードがはるかに読みやすくなります。
これが私のコードです:
public static bool operator == (Criterion c1, Criterion c2)
{
if (null == c1)
{
if (null == c2)
return true;
return false;
}
if (null == c2)
return false;
if ((c1.mId == c2.mId) && (c1.mName == c2.mName))
return true;
return false;
}