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