CA2248: Berikan argumen enum yang benar ke Enum.HasFlag
Properti | Nilai |
---|---|
ID Aturan | CA2248 |
Judul | Berikan argumen enum yang benar ke Enum.HasFlag |
Golongan | Penggunaan |
Perbaikan bersifat disruptif atau non-disruptif | Non-disruptif |
Diaktifkan secara default di .NET 9 | Sebagai saran |
Penyebab
Jenis enum yang diteruskan sebagai argumen ke panggilan metode HasFlag
berbeda dari jenis enum panggilan.
Deskripsi aturan
Metode Enum.HasFlag
mengharapkan argumen memiliki jenis yang sama enum
dengan instans enum
tempat metode dipanggil. Jika ini adalah jenis yang berbeda enum
, pengecualian yang tidak tertangani akan dilemparkan pada waktu proses.
Cara memperbaiki pelanggaran
Untuk memperbaiki pelanggaran, gunakan jenis enum yang sama pada argumen dan pemanggil:
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
}
}
Kapan harus menekan peringatan
Jangan menekan pelanggaran dari aturan ini.
Berkolaborasi dengan kami di GitHub
Sumber untuk konten ini dapat ditemukan di GitHub, yang juga dapat Anda gunakan untuk membuat dan meninjau masalah dan menarik permintaan. Untuk informasi selengkapnya, lihat panduan kontributor kami.