Avertissement CA2013 : ne pas utiliser ReferenceEquals avec des types valeur
La règle d’analyseur de code .NET CA2013 est activée par défaut à partir de .NET 5. Elle génère un avertissement de build pour tout code où ReferenceEquals(Object, Object) est utilisé pour comparer un ou plusieurs types valeur à des fins d’égalité.
Description de la modification
À compter de .NET 5, le Kit de développement logiciel (SDK) .NET inclut des analyseurs de code source .NET. Plusieurs de ces règles sont activées par défaut, y compris CA2013. Si votre projet contient du code qui enfreint cette règle et est configuré pour traiter les avertissements comme des erreurs, ce changement peut casser votre build.
La règle CA2013 recherche les instances où ReferenceEquals(Object, Object) est utilisée pour comparer un ou plusieurs types valeur visant à l’égalité. Ce genre de comparaison des types valeur visant à l’égalité peut entraîner des résultats incorrects, car les valeurs sont encadrées avant d’être comparées. ReferenceEquals(Object, Object) retourne false
même si les valeurs comparées représentent la même instance qu’un type valeur.
Version introduite
5,0
Action recommandée
Modifiez le code pour utiliser un opérateur d’égalité approprié, tel que
==
. Vous ne devez pas supprimer cet avertissement.Pour désactiver complètement l’analyse du code, définissez
EnableNETAnalyzers
surfalse
dans votre fichier projet. Pour plus d’informations, consultez EnableNETAnalyzers.
API affectées
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour