CA2248: Specificare l'argomento di enumerazione corretto per Enum.HasFlag
Proprietà | valore |
---|---|
ID regola | CA2248 |
Title | Specificare l'argomento enum corretto per Enum.HasFlag |
Categoria | Utilizzo |
La correzione causa un'interruzione o meno | Non causa un'interruzione |
Abilitato per impostazione predefinita in .NET 9 | Come suggerimento |
Causa
Il tipo di enumerazione passato come argomento alla chiamata al HasFlag
metodo è diverso dal tipo di enumerazione chiamante.
Descrizione regola
Il Enum.HasFlag
metodo prevede che l'argomento enum
sia dello stesso enum
tipo dell'istanza in cui viene richiamato il metodo. Se si tratta di tipi diversi enum
, verrà generata un'eccezione non gestita in fase di esecuzione.
Come correggere le violazioni
Per correggere le violazioni, usare lo stesso tipo di enumerazione sia per l'argomento che per il chiamante:
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
}
}
Quando eliminare gli avvisi
Non eliminare le violazioni da questa regola.
Collabora con noi su GitHub
L'origine di questo contenuto è disponibile in GitHub, in cui è anche possibile creare ed esaminare i problemi e le richieste pull. Per ulteriori informazioni, vedere la guida per i collaboratori.