共用方式為


CA2248:請提供正確的列舉引數給 Enum.HasFlag

屬性
規則識別碼 CA2248
職稱 請提供正確的列舉引數給 Enum.HasFlag
類別 使用方式
修正程式是中斷或非中斷 不中斷
在 .NET 10 中預設啟用 建議

原因

傳遞為 HasFlag 方法呼叫引數的列舉類型與呼叫列舉類型不同。

檔案描述

方法預期自Enum.HasFlagenum變數的類型與叫用方法的實例相同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 runtime

        m.HasFlag(MyEnum.A); // Valid call
    }
}

隱藏警告的時機

請勿隱藏此規則的違規。