Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah atribut C# [Flags] berfungsi dengan operasi bitwise?

Bagaimanakah atribut C# [Flags] berfungsi dengan operasi bitwise?

Patricia Arquette
Lepaskan: 2025-02-02 14:51:09
asal
166 orang telah melayarinya

How Does the C# [Flags] Enum Attribute Work with Bitwise Operations?

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] [bendera] Peranan atribut

Atribut menunjukkan gabungan nilai penghitungan, bukan satu nilai. Ini membolehkan: <:>

Operasi bit:

Menggunakan bit atau pengendali (| |) boleh digabungkan untuk memasukkan pelbagai pilihan. [Flags]

Mudah dibaca output:
    Enumerated
  • Kaedah untuk menghasilkan senarai logo aktiviti koma -dipeparat untuk menyediakan perwakilan yang mesra pengguna.
  • Penggunaan contoh
  • Pertimbangkan penghitungan berikut: ToString()
tingkah laku operasi

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>
Salin selepas log masuk

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>
Salin selepas log masuk
Gunakan pengendali bit

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>
Salin selepas log masuk

Mekanisme yang mendasari: Kedudukan menunjukkan

Nilai penghitungan diwakili dalam bentuk binari. Apabila menggunakan kuasa 2, pesona kedudukan beroperasi setiap bit:

HasFlag

Red:
<code class="language-csharp">if (myProperties.AllowedColors.HasFlag(MyColor.Yellow))
{
    // 允许黄色...
}</code>
Salin selepas log masuk
00000100

Green: 00000010

dibenarkanColors (merah | hijau):

00000110
<code class="language-csharp">if ((myProperties.AllowedColors & MyColor.Yellow) == MyColor.Yellow)
{
    // 允许黄色...
}</code>
Salin selepas log masuk

none value

Logo

biasanya dengan logo 0
    tidak digunakan untuk kedudukan dan operasi. Ini kerana hasilnya akan sentiasa 0. Walau bagaimanapun, anda boleh menggunakan perbandingan logik (==) untuk menentukan sama ada terdapat sedikit tetapan.

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

sumber:php.cn
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