Gli operatori devono avere overload simmetrici
Aggiornamento: novembre 2007
TypeName |
OperatorsShouldHaveSymmetricalOverloads |
CheckId |
CA2226 |
Category |
Microsoft.Usage |
Breaking Change |
Non sostanziale |
Un tipo implementa l'operatore di uguaglianza o disuguaglianza e non implementa l'operatore opposto.
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.
Per correggere una violazione di questa regola, implementare entrambi gli operatori di uguaglianza e disuguaglianza oppure rimuovere l'operatore presente.
Non escludere un avviso da questa regola. Il tipo non funzionerebbe in modo coerente con .NET Framework.
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