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.
GitHub'da bizimle işbirliği yapın
Bu içeriğin kaynağı GitHub'da bulunabilir; burada ayrıca sorunları ve çekme isteklerini oluşturup gözden geçirebilirsiniz. Daha fazla bilgi için katkıda bulunan kılavuzumuzu inceleyin.