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
Mary-Kate Olsenasal
2025-02-02 14:46:09249semak imbas

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:

<code class="language-csharp">[Flags]
public enum MyColors
{
    Yellow = 1,
    Green = 2,
    Red = 4,
    Blue = 8
}</code>

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.

<code class="language-csharp">if (myProperties.AllowedColors.HasFlag(MyColor.Yellow)) { ... }</code>
none value

<code class="language-csharp">if ((myProperties.AllowedColors & MyColor.Yellow) == MyColor.Yellow) { ... }</code>
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:
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