Aracılığıyla paylaş


CA2248: Enum.HasFlag için doğru sabit listesi bağımsız değişkeni sağlayın

Özellik Değer
Kural Kimliği CA2248
Başlık Enum.HasFlag için doğru sabit listesi bağımsız değişkenini belirtin
Kategori Kullanım
Hataya neden olan veya bozulmayan düzeltme Hataya neden olmayan
.NET 9'da varsayılan olarak etkin Öneri olarak

Neden

Yöntem çağrısına HasFlag bağımsız değişken olarak geçirilen sabit listesi türü, çağrılan sabit listesi türünden farklıdır.

Kural açıklaması

yöntemi, Enum.HasFlag bağımsız değişkeninin enum yöntemin çağrıldığı örnekle aynı enum türde olmasını bekler. Bunlar farklı enum türlerse, çalışma zamanında işlenmeyen bir özel durum oluşturulur.

İhlalleri düzeltme

İhlalleri düzeltmek için hem bağımsız değişkende hem de çağıranda aynı sabit listesi türünü kullanın:

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

Uyarıların ne zaman bastırılması gerekiyor?

Bu kuraldan gelen ihlalleri bastırmayın.