Olvasás angol nyelven

Megosztás a következőn keresztül:


CA2248: Adja meg a helyes enum argumentumot az Enum.HasFlag függvénynek

Tulajdonság Érték
Szabályazonosító CA2248
Cím Adja meg a megfelelő enum argumentumot az Enum.HasFlag függvényhez
Kategória Használat
A javítás kompatibilitástörő vagy nem törik Nem törés
Alapértelmezés szerint engedélyezve a .NET 9-ben Javaslatként

Ok

A metódushívás argumentumaként HasFlag átadott számtípus eltér a hívó szám típusától.

Szabály leírása

A Enum.HasFlag metódus elvárja, hogy az enum argumentum ugyanolyan enum típusú legyen, mint az a példány, amelyen a metódust meghívják. Ha ezek különböző enum típusok, a rendszer futásidőben nem kezelt kivételt küld.

Szabálysértések kijavítása

A szabálysértések kijavításához használja ugyanazt a számtípust az argumentumon és a hívón is:

C#
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
    }
}

Mikor kell letiltani a figyelmeztetéseket?

Ne tiltsa el a szabály megsértését.