Condividi tramite


Gli operatori devono avere overload simmetrici

Aggiornamento: novembre 2007

TypeName

OperatorsShouldHaveSymmetricalOverloads

CheckId

CA2226

Category

Microsoft.Usage

Breaking Change

Non sostanziale

Causa

Un tipo implementa l'operatore di uguaglianza o 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.

Correzione di 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

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

Gli overload degli operatori hanno alternative con nome

Eseguire l'override di Equals all'overload dell'operatore "uguale a"

Eseguire l'override di GetHashCode all'override di Equals

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