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.
Collaborer avec nous sur GitHub
La source de ce contenu se trouve sur GitHub, où vous pouvez également créer et examiner les problèmes et les demandes de tirage. Pour plus d’informations, consultez notre guide du contributeur.