dalam pemahaman [bendera] dalam atribut penghitungan C#
dalam C#, atribut
memainkan peranan penting apabila menentukan satu set kemungkinan kemungkinan. Penghitungan ini biasanya digunakan bersama -sama dengan kedudukan kedudukan untuk menggabungkan dan mengendalikan pelbagai pilihan pada masa yang sama.
[Flags]
Atribut menunjukkan gabungan nilai penghitungan, bukan satu nilai. Ini membolehkan: <:>
Operasi bit: Menggunakan bit atau pengendali (| |) boleh digabungkan untuk memasukkan pelbagai pilihan. [Flags]
ToString()
Atribut tidak akan menetapkan nilai penghitungan secara automatik kepada kuasa 2. Untuk memastikan keserasian operasi BIT, anda harus secara manual mengedarkan kuasa 2 ke nilai.
pengisytiharan ralat:
<code class="language-csharp">[Flags] public enum Options { None = 0, Option1 = 1, Option2 = 2, Option3 = 4, Option4 = 8 }</code>
pernyataan yang betul:
[Flags]
Periksa gabungan logo pemeriksaan
Kaedah ini boleh digunakan untuk memeriksa sama ada atribut mengandungi tanda -tanda tertentu:
<code class="language-csharp">[Flags] public enum MyColors { Yellow, // 0 Green, // 1 Red, // 2 Blue // 3 }</code>
sebelum .net 4, anda boleh menggunakan kedudukan dan simbol operasi (&) untuk mengesahkan kewujudan logo:
<code class="language-csharp">[Flags] public enum MyColors { Yellow = 1, Green = 2, Red = 4, Blue = 8 }</code>
Mekanisme yang mendasari: Kedudukan menunjukkan
Nilai penghitungan diwakili dalam bentuk binari. Apabila menggunakan kuasa 2, pesona kedudukan beroperasi setiap bit:
HasFlag
<code class="language-csharp">if (myProperties.AllowedColors.HasFlag(MyColor.Yellow)) { // 允许黄色... }</code>
<code class="language-csharp">if ((myProperties.AllowedColors & MyColor.Yellow) == MyColor.Yellow) { // 允许黄色... }</code>
none value
Logo
biasanya dengan logo 0Atas ialah kandungan terperinci Bagaimanakah atribut C# [Flags] berfungsi dengan operasi bitwise?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!