Avviso CA2013: Non usare ReferenceEquals con tipi valore
La regola dell'analizzatore del codice .NET CA2013 è abilitata, per impostazione predefinita, a partire da .NET 5. Genera un avviso di compilazione per qualsiasi codice in cui ReferenceEquals(Object, Object) è usato per confrontare uno o più tipi valore per verificarne l'uguaglianza.
Descrizione delle modifiche
A partire da .NET 5, .NET SDK include analizzatori del codice sorgente .NET. Diverse di queste regole sono abilitate, per impostazione predefinita, tra cui CA2013. Se il progetto contiene codice che viola questa regola ed è configurato per considerare gli avvisi come errori, questa modifica potrebbe interrompere la compilazione.
La regola CA2013 trova le istanze in cui ReferenceEquals(Object, Object) è usato per confrontare uno o più tipi valore per verificarne l'uguaglianza. Confrontare i tipi valore per verificarne l'uguaglianza in questo modo può portare a risultati non corretti, perché i valori sono incasellati prima di essere confrontati. ReferenceEquals(Object, Object) restituirà false
anche se i valori confrontati rappresentano la stessa istanza di un tipo valore.
Versione introdotta
5.0
Azione consigliata
Modificare il codice per usare un operatore di uguaglianza appropriato, ad esempio
==
. Non eliminare questo avviso.Per disabilitare completamente l'analisi del codice, impostare
EnableNETAnalyzers
sufalse
nel file di progetto. Per altre informazioni, vedere EnableNETAnalyzers.
API interessate
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per