Share via


演算子は対称的な方法でオーバーロードします

更新 : 2007 年 11 月

TypeName

OperatorsShouldHaveSymmetricalOverloads

CheckId

CA2226

カテゴリ

Microsoft.Usage

互換性に影響する変更点

なし

原因

型で等値演算子または非等値演算子を実装し、逆の働きをする演算子を実装していません。

規則の説明

等値演算子または非等値演算子が型のインスタンスに適用できて、逆の働きをする演算子が定義されない、という状況はありません。一般に、非等値演算子は、等値演算子の否定値を返すことで実装します。

C# コンパイラでは、この規則違反に対してエラーを発行します。

違反の修正方法

この規則違反を修正するには、等値演算子と非等値演算子の両方を実装するか、一方しか実装されていない演算子を削除します。

警告を抑制する状況

この規則による警告は抑制しないでください。型が、.NET Framework と整合性を取る方法では機能しなくなります。

関連規則

参照型で等値演算子をオーバーロードしないでください

演算子のオーバーロードに代替名を付けます

等値演算子のオーバーロードに equals をオーバーライドします

Equals のオーバーライドに対して GetHashCode をオーバーライドします

ValueType.Equals のオーバーライドで、演算子 equals をオーバーロードします