ホームページ > バックエンド開発 > C++ > C#[flags]属性は、酵素のビットワイズ操作をどのように有効にしますか?

C#[flags]属性は、酵素のビットワイズ操作をどのように有効にしますか?

Patricia Arquette
リリース: 2025-02-02 15:06:11
オリジナル
969 人が閲覧しました

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

ビットワイズ列挙操作のc#[Flags]属性をレバレッジ

c#の[Flags]属性は、列挙がフラグセットとして機能するようにし、ビットワイズの組み合わせをサポートします。

属性機能:[Flags] この属性を有効にします:

    ビットワイズの組み合わせ:
  • ビットワイズ演算子(またはなど)を使用して複数の列挙値を組み合わせて、単一の値内でいくつかのオプションを表すことができます。 |強化された文字列表現:
  • フラグ付き列挙の文字列表現は、コンマできちんと分離されたすべてのアクティブなフラグを表示します。
  • 実例:

ここで、フラグセットとして機能します。組み合わせオプションは、ビットワイズまたは演算子を使用して達成されます:

[Flags]
public enum Options
{
    None = 0,
    OptionA = 1,
    OptionB = 2,
    OptionC = 4,
    OptionD = 8
}
ログイン後にコピー

Optionsは値6(2 4)を保持し、

var combinedOptions = Options.OptionB | Options.OptionC; 
ログイン後にコピー
の両方がアクティブであることを意味します。

combinedOptions重要な考慮事項:OptionB OptionC

2つの2つのパワー:シームレスなビットワイズ操作の場合、列挙値は2つのパワーでなければなりません(1、2、4、8など)。

値:

    値は、フラグが設定されていないことを意味します。 ビットワイズで直接使用し、操作は推奨されません
  • 個々のフラグの識別:
  • メソッド(.NET 4以降から入手可能)特定のフラグが存在するかどうかを効率的にチェックします:None 0
  • 内部メカニズム:

属性は、ビットフラグとしての列挙値の使用を容易にします。 それらのバイナリ表現は、ビットワイズ操作と改善された文字列出力の根底にあります。

さらなる読み取り:HasFlag()

if (combinedOptions.HasFlag(Options.OptionB))
{
    // OptionB is set
}
ログイン後にコピー

Microsoft docs:flags属性

[Flags]Microsoft docs:フラグの設計enums

以上がC#[flags]属性は、酵素のビットワイズ操作をどのように有効にしますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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