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