CA2248: Podaj poprawny argument wyliczenia do enum.HasFlag
Właściwości | Wartość |
---|---|
Identyfikator reguły | CA2248 |
Tytuł | Podaj poprawny argument wyliczenia dla metody Enum.HasFlag |
Kategoria | Użycie |
Poprawka powodująca niezgodność lub niezgodność | Niezgodność |
Domyślnie włączone na platformie .NET 9 | Jako sugestia |
Przyczyna
Typ wyliczenia przekazany jako argument do HasFlag
wywołania metody różni się od typu wyliczenia wywołującego.
Opis reguły
Metoda Enum.HasFlag
oczekuje enum
, że argument ma być tego samego enum
typu co wystąpienie, na którym wywoływana jest metoda. Jeśli są to różne enum
typy, w czasie wykonywania zostanie zgłoszony nieobsługiwany wyjątek.
Jak naprawić naruszenia
Aby naprawić naruszenia, użyj tego samego typu wyliczenia zarówno dla argumentu, jak i elementu wywołującego:
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
}
}
Kiedy pomijać ostrzeżenia
Nie pomijaj naruszeń tej reguły.
Współpracuj z nami w serwisie GitHub
Źródło tej zawartości można znaleźć w witrynie GitHub, gdzie można również tworzyć i przeglądać problemy i żądania ściągnięcia. Więcej informacji znajdziesz w naszym przewodniku dla współtwórców.