运算符应有对称重载

更新:2007 年 11 月

TypeName

OperatorsShouldHaveSymmetricalOverloads

CheckId

CA2226

类别

Microsoft.Usage

是否重大更改

原因

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

规则说明

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

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

如何修复冲突

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

何时禁止显示警告

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

相关规则

不要对引用类型重载等号运算符

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

重载等号运算符时重写 Equals 方法

重写 Equals 时重写 GetHashCode

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