CA2248 : Fournir le bon argument enum à Enum.HasFlag
Propriété | Value |
---|---|
Identificateur de la règle | CA2248 |
Titre | Fournir le bon argument enum à Enum.HasFlag |
Catégorie | Utilisation |
Le correctif est cassant ou non cassant | Sans rupture |
Activé par défaut dans .NET 8 | Comme suggestion |
Cause
Le type d’énumération passé en tant qu’argument à l’appel de méthode HasFlag
est différent du type d’énumération appelant.
Description de la règle
La méthode Enum.HasFlag
attend que l’argument enum
soit du même type enum
que l’instance sur laquelle la méthode est appelée. S’il s’agit de types enum
différents, une exception non prise en charge est levée au moment de l’exécution.
Comment corriger les violations
Pour corriger les violations, utilisez le même type d’énumération sur l’argument et l’appelant :
public class C
{
[Flags]
public enum MyEnum { A, B, }
[Flags]
public enum OtherEnum { A, }
public void Method(MyEnum m)
{
m.HasFlag(OtherEnum.A); // Enum types are different, this call will cause an `ArgumentException` to be thrown at run time
m.HasFlag(MyEnum.A); // Valid call
}
}
Quand supprimer les avertissements
Ne supprimez pas les violations de cette règle.
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