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

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

Mary-Kate Olsen
リリース: 2025-02-02 14:46:09
オリジナル
188 人が閲覧しました

How Does the C# [Flags] Enum Attribute Enable Bitwise Operations on Enumerations?

c#列挙属性の[フラグ]を理解します

c#の属性は、単一の値ではなく、複数の可能な値を表す列挙を定義するために使用されます。 この属性を使用したリフトは、変数内の複数の値を結合および分析するために、ビット操作シンボルと一緒に使用できます。

パッティングと列挙値

[Flags]

属性自体はオペレーターを自動的に適用しません。列挙メンバーの値は、ビット操作をサポートするために適切に割り当てる必要があります。値が表示されない場合、値は0から増加し、コンピューティングの場所では適切に機能しません。

正しい列挙ステートメント

列挙およびビット操作を効果的に使用するために、列挙メンバーの値は2の力でなければなりません。たとえば、[Flags]

単一の値を取得します

列挙から単一の値を取得するには、

メソッドを使用するか、位置と操作を実行できます。

<code class="language-csharp">[Flags]
public enum MyColors
{
    Yellow = 1,
    Green = 2,
    Red = 4,
    Blue = 8
}</code>
ログイン後にコピー
.NET 4の以前のバージョンでは、位置と操作を使用してください。

下層の原理

列挙で2の電力を使用する理由は、それらがバイナリ表現に直接変換されることです。位置または操作の組み合わせを使用する場合、生成されたバイナリ値は有効なラベルを反映しています。同様に、1つのロゴを位置と操作に従ってテストすることができます。 [Flags] HasFlag() なし価値

<code class="language-csharp">if (myProperties.AllowedColors.HasFlag(MyColor.Yellow)) { ... }</code>
ログイン後にコピー

値は、サインのないプレースホルダーとして使用できます。ただし、常にゼロの結果を計算するため、位置と操作に使用することはできません。 ロジック比較を使用して、ビットが設定されているかどうかを確認できます。

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

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