Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah atribut enum C# [Flags] membolehkan operasi bitwise pada penghitungan?

Bagaimanakah atribut enum C# [Flags] membolehkan operasi bitwise pada penghitungan?

Mary-Kate Olsen
Lepaskan: 2025-02-02 14:46:09
asal
245 orang telah melayarinya

How Does the C# [Flags] Enum Attribute Enable Bitwise Operations on Enumerations?

memahami [bendera] dalam C#Atribut yang disebutkan

Atribut C#digunakan untuk menentukan penghitungan yang mewakili pelbagai nilai yang mungkin, bukan satu nilai. Lif menggunakan atribut ini boleh digunakan bersama -sama dengan simbol operasi bit, untuk menggabungkan dan menganalisis pelbagai nilai dalam pembolehubah.

Nilai meletakkan dan penghitungan [Flags]

Atribut itu sendiri tidak secara automatik memohon pengendali. Nilai ahli penghitungan mesti diberikan dengan sewajarnya untuk menyokong operasi BIT. Jika nilai tidak dipaparkan, nilai akan meningkat dari 0, yang tidak akan berfungsi dengan baik di tempat pengkomputeran. pernyataan penghitungan yang betul

[Flags] Untuk menggunakan operasi penghitungan dan bit secara berkesan, nilai ahli penghitungan mestilah kuasa 2. Contohnya:

mengambil nilai tunggal

Untuk mengambil nilai tunggal dari yang disenaraikan, anda boleh menggunakan kaedah

atau melaksanakan kedudukan dan operasi:

[Flags]
public enum MyColors
{
    Yellow = 1,
    Green = 2,
    Red = 4,
    Blue = 8
}
Salin selepas log masuk

Untuk versi sebelumnya .net 4, gunakan kedudukan dan operasi:

<底> Prinsip Lapisan Bawah

[Flags] HasFlag() Alasan untuk menggunakan kuasa 2 dalam penghitungan adalah bahawa mereka terus menukar kepada perwakilan binari. Apabila menggunakan kedudukan atau gabungan operasi, nilai binari yang dihasilkan mencerminkan label membolehkan. Begitu juga, satu logo dibenarkan untuk diuji mengikut kedudukan dan operasi.

if (myProperties.AllowedColors.HasFlag(MyColor.Yellow)) { ... }
Salin selepas log masuk
none value

if ((myProperties.AllowedColors & MyColor.Yellow) == MyColor.Yellow) { ... }
Salin selepas log masuk
Nilai boleh digunakan sebagai pemegang tempat tanpa sebarang tanda. Walau bagaimanapun, ia tidak boleh digunakan untuk kedudukan dan operasi, kerana ia sentiasa mengira hasil sifar. Anda boleh menggunakan perbandingan logik untuk memeriksa sama ada mana -mana bit ditetapkan:

Atas ialah kandungan terperinci Bagaimanakah atribut enum C# [Flags] membolehkan operasi bitwise pada penghitungan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan