Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
| 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 10 | 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, dojde při běhu k neošetřené výjimce.
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 runtime
m.HasFlag(MyEnum.A); // Valid call
}
}
Kdy potlačit upozornění
Nepotlačujte porušení tohoto pravidla.