Enum Flags dan Kombinasi Bitwise
Gabungkan nilai enum dengan atribut Flags.
Enum Flags dan Kombinasi Bitwise adalah pelajaran C# Academy gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar C# Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus C# Academy mencakup 4 pelajaran total.
Enumerasi Penanda
Enumerasi penanda mewakili kombinasi opsi. Tandai dengan atribut [Flags] dan berikan setiap anggota pangkat dua yang berbeda.
using System;
[Flags]
enum Access { None = 0, Read = 1, Write = 2, Execute = 4 }
class Program {
static void Main() {
Access a = Access.Read | Access.Write;
Console.WriteLine(a);
}
}Pangkat Dua
Setiap penanda harus menempati bit yang unik: 1, 2, 4, 8, 16. Dengan begitu, nilai dapat digabungkan tanpa tumpang tindih.
using System;
[Flags]
enum Perm { Read = 1, Write = 2, Delete = 4, Share = 8 }
class Program {
static void Main() {
Console.WriteLine((int)Perm.Share);
}
}Menggabungkan dengan OR
Gunakan OR bitwise (|) untuk menggabungkan beberapa penanda menjadi satu nilai.
using System;
[Flags]
enum Access { None = 0, Read = 1, Write = 2, Execute = 4 }
class Program {
static void Main() {
Access a = Access.Read | Access.Execute;
Console.WriteLine((int)a);
}
}Memeriksa dengan HasFlag
HasFlag menguji apakah suatu nilai gabungan memuat penanda tertentu.
using System;
[Flags]
enum Access { None = 0, Read = 1, Write = 2, Execute = 4 }
class Program {
static void Main() {
Access a = Access.Read | Access.Write;
Console.WriteLine(a.HasFlag(Access.Write));
Console.WriteLine(a.HasFlag(Access.Execute));
}
}Memeriksa dengan AND Bitwise
Anda juga dapat menguji penanda dengan & lalu membandingkannya dengan nilai bukan nol, yang cepat dan eksplisit.
using System;
[Flags]
enum Access { None = 0, Read = 1, Write = 2 }
class Program {
static void Main() {
Access a = Access.Read | Access.Write;
bool canWrite = (a & Access.Write) != 0;
Console.WriteLine(canWrite);
}
}Menghapus Penanda
Hapus penanda dengan AND terhadap komplemennya: a &= ~Access.Write.
using System;
[Flags]
enum Access { None = 0, Read = 1, Write = 2, Execute = 4 }
class Program {
static void Main() {
Access a = Access.Read | Access.Write;
a &= ~Access.Write;
Console.WriteLine(a);
}
}Menambahkan Penanda
Tambahkan penanda dengan melakukan OR terhadapnya. Jika penanda tersebut sudah ada, tidak ada yang berubah.
using System;
[Flags]
enum Access { None = 0, Read = 1, Write = 2, Execute = 4 }
class Program {
static void Main() {
Access a = Access.Read;
a |= Access.Execute;
Console.WriteLine(a);
}
}Mengubah Status Penanda
XOR (^) membalik status penanda menjadi aktif atau nonaktif dalam satu langkah.
using System;
[Flags]
enum Access { None = 0, Read = 1, Write = 2 }
class Program {
static void Main() {
Access a = Access.Read;
a ^= Access.Write;
Console.WriteLine(a);
a ^= Access.Write;
Console.WriteLine(a);
}
}Mengapa [Flags] Penting
Atribut [Flags] mengubah ToString agar mencetak nama gabungan, bukan satu angka.
using System;
[Flags]
enum Access { None = 0, Read = 1, Write = 2, Execute = 4 }
class Program {
static void Main() {
Access a = Access.Read | Access.Execute;
Console.WriteLine(a);
}
}Mendefinisikan Anggota Gabungan
Anda dapat mendefinisikan anggota praktis yang merupakan gabungan, seperti All.
using System;
[Flags]
enum Access { None = 0, Read = 1, Write = 2, Execute = 4, All = Read | Write | Execute }
class Program {
static void Main() {
Console.WriteLine((int)Access.All);
}
}Penanda dalam Praktik
Penanda memodelkan izin, pengalih fitur, dan kumpulan opsi secara ringkas dalam satu bilangan bulat.
using System;
[Flags]
enum Feature { None = 0, Dark = 1, Beta = 2, Sync = 4 }
class Program {
static void Main() {
Feature f = Feature.Dark | Feature.Sync;
Console.WriteLine(f.HasFlag(Feature.Beta));
}
}Pemeriksaan Singkat
Uji pemahaman Anda tentang enumerasi penanda.
Ringkasan
Enumerasi [Flags] memberikan setiap anggota pangkat dua yang unik, sehingga penanda dapat digabungkan dengan | dan diuji dengan HasFlag atau &. Anda menambahkan penanda dengan |=, menghapusnya dengan &= ~, dan mengubah statusnya dengan ^=.
Atribut tersebut membuat ToString mencetak nama gabungan, dan Anda dapat mendefinisikan anggota praktis seperti All.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Enum Flags dan Kombinasi Bitwise” gratis?
Ya — teks lengkap “Enum Flags dan Kombinasi Bitwise” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus C# Academy, upgrade ke CoddyKit PRO. Kursus C# Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Enum Flags dan Kombinasi Bitwise”?
Gabungkan nilai enum dengan atribut Flags. Kamu berlatih C# Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai C# Academy?
Tidak diperlukan pengalaman sebelumnya. C# Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.
Berapa lama pelajaran “Enum Flags dan Kombinasi Bitwise” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran C# Academy ini?
Ya. Setiap pelajaran C# Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Mendefinisikan dan Menggunakan Enum
- Enum Flags dan Kombinasi Bitwise
- Konversi dan Parsing Enum
- Melakukan Iterasi pada Nilai Enum