CA2248:請提供正確的列舉引數給 Enum.HasFlag
屬性 | 值 |
---|---|
規則識別碼 | CA2248 |
標題 | 請提供正確的列舉引數給 Enum.HasFlag |
類別 | 使用方式 |
修正程式是中斷或非中斷 | 不中斷 |
預設在 .NET 8 中啟用 | 建議 |
原因
傳遞為 HasFlag
方法呼叫引數的列舉類型與呼叫列舉類型不同。
檔案描述
方法預期自 Enum.HasFlag
enum
變數的類型與叫用方法的實例相同 enum
。 如果這些是不同類型的 enum
,則會在執行時間擲回未處理的例外狀況。
如何修正違規
若要修正違規,請在 引數和呼叫端上使用相同的列舉類型:
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
}
}
隱藏警告的時機
請勿隱藏此規則的違規。