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
246 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:

[Flags]
public enum Options
{
    None = 0,
    Option1 = 1,
    Option2 = 2,
    Option3 = 4,
    Option4 = 8
}
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:

[Flags]
public enum MyColors
{
    Yellow,  // 0
    Green,   // 1
    Red,     // 2
    Blue     // 3
}
Salin selepas log masuk
<位> Gunakan pengendali bit

sebelum .net 4, anda boleh menggunakan kedudukan dan simbol operasi (&) untuk mengesahkan kewujudan logo:

[Flags]
public enum MyColors
{
    Yellow = 1,
    Green = 2,
    Red = 4,
    Blue = 8
}
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:
if (myProperties.AllowedColors.HasFlag(MyColor.Yellow))
{
    // 允许黄色...
}
Salin selepas log masuk
00000100

Green: 00000010

dibenarkanColors (merah | hijau):

00000110
if ((myProperties.AllowedColors & MyColor.Yellow) == MyColor.Yellow)
{
    // 允许黄色...
}
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!

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