Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
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.