CA2226: 演算子は対称型オーバーロードを含まなければなりません
TypeName |
OperatorsShouldHaveSymmetricalOverloads |
CheckId |
CA2226 |
分類 |
Microsoft.Usage |
互換性に影響する変更点 |
なし |
原因
型で等値演算子または非等値演算子を実装し、逆の働きをする演算子を実装していません。
規則の説明
等値演算子または非等値演算子が型のインスタンスに適用できて、逆の働きをする演算子が定義されない、という状況はありません。一般に、非等値演算子は、等値演算子の否定値を返すことで実装します。
C# コンパイラでは、この規則違反に対してエラーを発行します。
違反の修正方法
この規則違反を修正するには、等値演算子と非等値演算子の両方を実装するか、一方しか実装されていない演算子を削除します。
警告を抑制する状況
この規則による警告は抑制しないでください。型が、.NET Framework と整合性を取る方法では機能しなくなります。
関連規則
CA1046: 参照型で、演算子 equals をオーバーロードしないでください
CA2225: 演算子オーバーロードには名前付けされた代替が存在します
CA2224: オーバーロードする演算子 equals で Equals をオーバーライドします