Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Menggunakan Operasi Bitwise dengan Cekap pada C# Enums?

Bagaimanakah Saya Boleh Menggunakan Operasi Bitwise dengan Cekap pada C# Enums?

Patricia Arquette
Patricia Arquetteasal
2025-01-13 11:11:42856semak imbas

How Can I Efficiently Use Bitwise Operations on C# Enums?

Operasi bit biasa dalam penghitungan C#

Operasi bitwise membenarkan manipulasi yang cekap bagi bit individu dalam penghitungan, yang sangat berkesan untuk mengurus nilai bendera. Berikut ialah contoh menggunakan sintaks C# untuk melaksanakan operasi biasa pada penghitungan yang ditandakan sebagai atribut [Flags]:

Set bit

<code class="language-csharp">FlagsEnum flags = FlagsEnum.None;
flags |= FlagsEnum.Bit4; // 设置位4</code>

Sedikit jelas

<code class="language-csharp">flags &= ~FlagsEnum.Bit4; // 清除位4</code>

Togol kedudukan

<code class="language-csharp">flags ^= FlagsEnum.Bit4; // 切换位4 (已设置则清除,已清除则设置)</code>

Kedudukan ujian

<code class="language-csharp">if ((flags & FlagsEnum.Bit4) != 0) // 测试位4是否已设置</code>

Gunakan kaedah sambungan

Untuk memudahkan operasi bit, anda boleh menggunakan kaedah sambungan tersuai:

<code class="language-csharp">namespace EnumExtensions {
    public static class EnumerationExtensions {
        public static bool Has<T>(this Enum type, T value) => ((int)type & (int)value) == (int)value;
        // ... 其他扩展方法
    }
}</code>

Menggunakan kaedah sambungan

<code class="language-csharp">SomeType value = SomeType.Grapes;
bool isGrapes = value.Is(SomeType.Grapes); // true
bool hasGrapes = value.Has(SomeType.Grapes); // true</code>

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggunakan Operasi Bitwise dengan Cekap pada C# Enums?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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