CA2248: Forneça o argumento enum correto para Enum.HasFlag
Property | valor |
---|---|
ID da regra | CA2248 |
Título | Forneça o argumento enum correto para Enum.HasFlag |
Categoria | Utilização |
A correção está quebrando ou não quebrando | Sem quebra |
Habilitado por padrão no .NET 9 | Como sugestão |
O tipo enum passado como um argumento para a chamada de HasFlag
método é diferente do tipo enum chamador.
O Enum.HasFlag
método espera que o enum
argumento seja do mesmo enum
tipo que a instância na qual o método é invocado. Se forem tipos diferentes enum
, uma exceção não tratada será lançada em tempo de execução.
Para corrigir violações, use o mesmo tipo de enum no argumento e no chamador:
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
}
}
Não reprima violações desta regra.
Comentários do .NET
O .NET é um projeto código aberto. Selecione um link para fornecer comentários: