ホームページ > バックエンド開発 > C++ > C# 列挙型でビット単位の操作を効率的に使用するにはどうすればよいですか?

C# 列挙型でビット単位の操作を効率的に使用するにはどうすればよいですか?

Patricia Arquette
リリース: 2025-01-13 11:11:42
オリジナル
860 人が閲覧しました

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

C# 列挙型での一般的なビット操作

ビット単位の操作により、列挙内の個々のビットを効率的に操作できるため、フラグ値の管理に非常に効果的です。以下は、C# 構文を使用して、[Flags] 属性としてマークされた列挙に対して一般的な操作を実行する例です。

ビットをセット

<code class="language-csharp">FlagsEnum flags = FlagsEnum.None;
flags |= FlagsEnum.Bit4; // 设置位4</code>
ログイン後にコピー

クリアビット

<code class="language-csharp">flags &= ~FlagsEnum.Bit4; // 清除位4</code>
ログイン後にコピー

位置を切り替えます

<code class="language-csharp">flags ^= FlagsEnum.Bit4; // 切换位4 (已设置则清除,已清除则设置)</code>
ログイン後にコピー

テストポジション

<code class="language-csharp">if ((flags & FlagsEnum.Bit4) != 0) // 测试位4是否已设置</code>
ログイン後にコピー

拡張メソッドを使用する

ビット演算を簡素化するには、カスタム拡張メソッドを使用できます。

<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>
ログイン後にコピー

拡張メソッドの使用

以上がC# 列挙型でビット単位の操作を効率的に使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート