CA2226:运算符应有对称重载

类型名

OperatorsShouldHaveSymmetricalOverloads

CheckId

CA2226

类别

Microsoft.Usage

是否重大更改

原因

某个类型实现了相等运算符或不等运算符,却未实现相反运算符。

规则说明

不能存在以下情况:相等运算符或不等运算符适用于某类型的实例,却未定义相反运算符。类型通常通过返回相等运算符的反值来实现不等运算符。

C# 编译器发出一个关于与该规则的冲突的错误。

如何解决冲突

要修复与该规则的冲突,请同时实现相等运算符和不等运算符,或者移除现有的运算符。

何时禁止显示警告

不要禁止显示此规则发出的警告。您的类型的工作方式将与 .NET Framework 不一致。

相关规则

CA1046:不要对引用类型重载相等运算符

CA2225:运算符重载具有命名的备用项

CA2224:重载相等运算符时重写 Equals 方法

CA2218:重写 Equals 时重写 GetHashCode

CA2231:重写 ValueType.Equals 时应重载相等运算符