c#列挙属性の[フラグ]を理解します
[Flags]
正しい列挙ステートメント
列挙およびビット操作を効果的に使用するために、列挙メンバーの値は2の力でなければなりません。たとえば、[Flags]
単一の値を取得します
列挙から単一の値を取得するには、メソッドを使用するか、位置と操作を実行できます。
<code class="language-csharp">[Flags] public enum MyColors { Yellow = 1, Green = 2, Red = 4, Blue = 8 }</code>
下層の原理
列挙で2の電力を使用する理由は、それらがバイナリ表現に直接変換されることです。位置または操作の組み合わせを使用する場合、生成されたバイナリ値は有効なラベルを反映しています。同様に、1つのロゴを位置と操作に従ってテストすることができます。 [Flags]
HasFlag()
<code class="language-csharp">if (myProperties.AllowedColors.HasFlag(MyColor.Yellow)) { ... }</code>
値は、サインのないプレースホルダーとして使用できます。ただし、常にゼロの結果を計算するため、位置と操作に使用することはできません。 ロジック比較を使用して、ビットが設定されているかどうかを確認できます。
以上がc#[flags] enum属性は、列挙のビットワイズ操作をどのように有効にしますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。