Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah atribut enum C# [Flags] membolehkan operasi bitwise pada penghitungan?
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 kaedahatau 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>
<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!