Condividi tramite


Operatori di uguaglianza

Annotazioni

Questo contenuto viene ristampato con il permesso di Pearson Education, Inc. da Framework Design Guidelines: Conventions, Idioms e Pattern per Librerie .NET Riutilizzabili, 2a Edizione. Tale edizione è stata pubblicata nel 2008 e il libro è stato completamente rivisto nella terza edizione. Alcune informazioni in questa pagina potrebbero non essere aggiornate.

In questa sezione si tratta il sovraccarico degli operatori di uguaglianza e si fa riferimento a operator== e operator!= come operatori di uguaglianza.

❌ NON eseguire l'overload di uno degli operatori di uguaglianza e non dell'altro.

✔️ DO assicura che Object.Equals e gli operatori di uguaglianza abbiano esattamente la stessa semantica e caratteristiche di prestazioni simili.

Ciò significa spesso che Object.Equals è necessario eseguire l'override quando gli operatori di uguaglianza vengono sottoposti a overload.

❌ EVITARE di generare eccezioni dagli operatori di uguaglianza.

Ad esempio, restituisce false se uno degli argomenti è Null anziché generare NullReferenceException.

Operatori di uguaglianza per i tipi di valore

✔️ Eseguire il sovraccarico degli operatori di uguaglianza sui tipi di valore, se l'uguaglianza è significativa.

Nella maggior parte dei linguaggi di programmazione non esiste alcuna implementazione predefinita di operator== per i tipi valore.

Operatori di uguaglianza nei tipi di riferimento

❌ EVITARE il sovraccarico degli operatori di uguaglianza sui tipi di riferimento mutabili.

Molti linguaggi hanno operatori di uguaglianza predefiniti per i tipi di riferimento. Gli operatori predefiniti implementano in genere l'uguaglianza dei riferimenti e molti sviluppatori sono sorpresi quando il comportamento predefinito viene modificato in corrispondenza dell'uguaglianza dei valori.

Questo problema è mitigato per i tipi riferimento non modificabili perché l'immutabilità rende molto più difficile notare la differenza tra uguaglianza dei riferimenti e uguaglianza dei valori.

❌ EVITARE il sovraccarico degli operatori di uguaglianza sui tipi di riferimento se l'implementazione risulterebbe notevolmente più lenta rispetto a quella per uguaglianza di riferimento.

© Porzioni 2005, 2009 Microsoft Corporation. Tutti i diritti riservati.

Ristampato dall'autorizzazione di Pearson Education, Inc. da Framework Design Guidelines: Conventions, Idioms e Patterns for Reusable .NET Libraries, 2nd Edition di Krzysztof Cwalina e Brad Abrams, pubblicato il 22 ottobre 2008 da Addison-Wesley Professional come parte della Serie di sviluppo di Microsoft Windows.

Vedere anche