CA2248: Geef het juiste enum-argument op voor Enum.HasFlag
Eigenschappen | Weergegeven als |
---|---|
Regel-id | CA2248 |
Titel | Geef het juiste enum-argument op voor Enum.HasFlag |
Categorie | Gebruik |
Oplossing is brekend of niet-brekend | Niet-brekend |
Standaard ingeschakeld in .NET 9 | Als suggestie |
Oorzaak
Het enum-type dat als argument aan de HasFlag
methodeaanroep wordt doorgegeven, verschilt van het aanroepende enum-type.
Beschrijving van regel
De Enum.HasFlag
methode verwacht dat het enum
argument van hetzelfde enum
type is als het exemplaar waarop de methode wordt aangeroepen. Als dit verschillende enum
typen zijn, wordt er tijdens runtime een niet-verwerkte uitzondering gegenereerd.
Schendingen oplossen
Als u schendingen wilt oplossen, gebruikt u hetzelfde enumtype voor zowel het argument als de aanroeper:
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
}
}
Wanneer waarschuwingen onderdrukken
Geen schendingen van deze regel onderdrukken.
Met ons samenwerken op GitHub
De bron voor deze inhoud vindt u op GitHub, waar u ook problemen en pull-aanvragen kunt maken en controleren. Bekijk onze gids voor inzenders voor meer informatie.