Condividi tramite


CA2226: Gli operatori devono avere overload simmetrici

TypeName

OperatorsShouldHaveSymmetricalOverloads

CheckId

CA2226

Category

Microsoft.Usage

Breaking Change

Non sostanziale

Causa

Un tipo implementa l'operatore di uguaglianza o di disuguaglianza e non implementa l'operatore opposto.

Descrizione della regola

Non vi sono casi in cui l'operatore di uguaglianza o disuguaglianza sia applicabile a istanze di un tipo e l'operatore opposto non sia definito.I tipi implementano in genere l'operatore di disuguaglianza restituendo il valore negato dell'operatore di uguaglianza.

Il compilatore C# genera un errore per le violazioni di questa regola.

Come correggere le violazioni

Per correggere una violazione di questa regola, implementare entrambi gli operatori di uguaglianza e disuguaglianza oppure rimuovere l'operatore presente.

Esclusione di avvisi

Non escludere un avviso da questa regola.Il tipo non funzionerebbe in modo coerente con .NET Framework.

Regole correlate

CA1046: Non eseguire l'overload dell'operatore "uguale a" per i tipi di riferimento

CA2225: Gli overload degli operatori hanno alternative con nome

CA2224: Eseguire l'override di Equals all'override dell'operatore

CA2218: Eseguire l'override di GetHashCode all'override di Equals

CA2231: Eseguire l'overload dell'operatore "uguale a" all'override di ValueType.Equals