Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah atribut C# [Flags] membolehkan operasi bitwise dalam enum?

Bagaimanakah atribut C# [Flags] membolehkan operasi bitwise dalam enum?

Patricia Arquette
Lepaskan: 2025-02-02 15:06:11
asal
969 orang telah melayarinya

How Does the C# [Flags] Attribute Enable Bitwise Operations in Enums?

memanfaatkan atribut C# untuk operasi enum bitwise [Flags]

atribut

dalam C# memberi kuasa kepada berfungsi sebagai set bendera, menyokong kombinasi bitwise. [Flags]

Fungsi atribut: [Flags]

atribut ini membolehkan:

  • Bitwise Combinations: nilai enum berganda boleh digabungkan menggunakan pengendali bitwise (seperti atau ) untuk mewakili beberapa pilihan dalam satu nilai. |
  • Perwakilan rentetan yang dipertingkatkan: Perwakilan rentetan enum bendera memaparkan semua bendera aktif, dengan kemas dipisahkan oleh koma.

Contoh ilustrasi:

[Flags]
public enum Options
{
    None = 0,
    OptionA = 1,
    OptionB = 2,
    OptionC = 4,
    OptionD = 8
}
Salin selepas log masuk
di sini,

bertindak sebagai set bendera. Menggabungkan pilihan dicapai menggunakan bitwise atau pengendali: Options

var combinedOptions = Options.OptionB | Options.OptionC; 
Salin selepas log masuk

akan memegang nilai 6 (2 4), menandakan kedua -dua combinedOptions dan OptionB aktif. OptionC

Pertimbangan penting:

  • Kuasa dua: Untuk operasi bitwise yang lancar, nilai enum mestilah kuasa dua (1, 2, 4, 8, dan lain -lain).
  • nilai: None Nilai menandakan tiada bendera ditetapkan. Penggunaan langsung dalam bitwise dan operasi tidak disyorkan. 0

Mengenalpasti bendera individu:

kaedah

(tersedia dari .net 4 dan seterusnya) Memeriksa dengan cekap jika bendera tertentu hadir: HasFlag()

if (combinedOptions.HasFlag(Options.OptionB))
{
    // OptionB is set
}
Salin selepas log masuk

Mekanisme dalaman:

atribut

memudahkan penggunaan nilai enum sebagai bendera bit. Perwakilan binari mereka mendasari operasi bitwise dan output rentetan yang lebih baik. [Flags]

Bacaan Lanjut:

  • Microsoft Docs: Atribut Bendera
  • Microsoft Docs: Merancang Bendera Enums

Atas ialah kandungan terperinci Bagaimanakah atribut C# [Flags] membolehkan operasi bitwise dalam enum?. 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