Partager via


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

  • 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 sur false dans votre fichier projet. Pour plus d’informations, consultez EnableNETAnalyzers.

API affectées