다음을 통해 공유


CA2226: 연산자에는 대칭 오버로드가 있어야 합니다.

TypeName

OperatorsShouldHaveSymmetricalOverloads

CheckId

CA2226

범주

Microsoft.Usage

변경 수준

주요 변경 아님

원인

형식이 같음 연산자 또는 같지 않음 연산자를 구현하면서 그 반대 연산자를 구현하지 않습니다.

규칙 설명

같음 또는 같지 않음 연산을 형식 인스턴스에 적용할 수 있으면서 그 반대 연산자가 정의되어 있지 않은 경우는 없습니다. 형식은 대개 같음 연산자의 부정 값을 반환하여 같지 않음 연산자를 구현합니다.

C# 컴파일러는 이 규칙을 위반할 경우 오류를 발생시킵니다.

위반 문제를 해결하는 방법

이 규칙 위반 문제를 해결하려면 같음 연산자와 같지 않음 연산자를 모두 구현하거나 한 연산자만 있는 경우 이를 제거합니다.

경고를 표시하지 않는 경우

이 규칙에서는 경고를 표시해야 합니다. 해당 형식이 .NET Framework에서와 같은 방식으로 작동하지 않습니다.

관련 규칙

CA1046: 참조 형식에 같음 연산자를 오버로드하지 마십시오.

CA2225: 연산자 오버로드에는 명명된 대체 항목이 있습니다.

CA2224: 같음 연산자를 오버로드할 때 Equals를 재정의하십시오.

CA2218: Equals를 재정의할 때 GetHashCode를 재정의하십시오.

CA2231: ValueType.Equals를 재정의할 때 같음 연산자를 오버로드하십시오.