CA2248: Zadejte správný argument výčtu enum enum.HasFlag
Vlastnost | Hodnota |
---|---|
ID pravidla | CA2248 |
Název | Poskytněte prosím do Enum.HasFlag správný argument enum |
Kategorie | Využití |
Oprava způsobující chybu nebo chybu způsobující chybu | Nenarušující |
Povoleno ve výchozím nastavení v .NET 8 | Jako návrh |
Příčina
Typ výčtu předaný jako argument volání HasFlag
metody se liší od typu volání výčtu.
Popis pravidla
Metoda Enum.HasFlag
očekává, enum
že argument bude stejného enum
typu jako instance, na které je vyvolána metoda. Pokud se jedná o různé enum
typy, vyvolá se neošetřená výjimka za běhu.
Jak opravit porušení
Pokud chcete opravit porušení, použijte stejný typ výčtu u argumentu i volajícího:
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
}
}
Kdy potlačit upozornění
Nepotlačujte porušení tohoto pravidla.
Spolupracujte s námi na GitHubu
Zdroj tohoto obsahu najdete na GitHubu, kde můžete také vytvářet a kontrolovat problémy a žádosti o přijetí změn. Další informace najdete v našem průvodci pro přispěvatele.