問題タブ [enum-flags]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
31 参照

enums - enum t を使用して複数の値を取得する方法は?

これを行う正しい方法がわかりません。しかし、これは私が欲しいものです。私は列挙型を持っています

EValue{A=1,B=2,C=4,D=8,E=16,}

データベースの int 値を number と言う必要があります。

A、c、Eを選択した場合は言う

データベースで 1=4=16 =21 と言う必要があります。

どちらでも構いませんが、21 から a,c,e を取得する方法

事前に助けてくれてありがとう

0 投票する
2 に答える
1640 参照

c# - 値を [Flags] リストから Enum に設定 c#

リストから取得したアイテムで Enum 値を設定する必要があります。

私は列挙型を持っています:

値を含むリスト:

foreach を使用して次の結果を取得するにはどうすればよいですか?

ありがとう

0 投票する
2 に答える
1308 参照

c# - 列挙型フラグの組み合わせをどのようにテストしますか?

列挙型フラグがあるとしましょう:

以下の関数があります。このパラメーターは、DoSomething( ColorType.Blue | ColorType.Yellow ) などのフラグの組み合わせです。

考えられるすべてのフラグのビット単位の組み合わせをテストする簡単な方法はありますか?

ありがとう

0 投票する
2 に答える
161 参照

c - 各メンバーの値を明示的に設定せずに、Cで列挙フラグを定義する方法は?

Cで行うのは一般的です...

ただし、フラグを使用すると、明示的に定義する必要があります...

各値を明示的にリストせずにフラグを定義することは可能ですか?

この質問を投稿して以来、なぜこれをやりたいのかについて混乱しているようです。明確にするために、フラグを明示的に定義することは通常「良いこと」であるため、私の質問は、回避したい場合のかなりあいまいなコーナーケースについてです。


注: これは、フラグが単なる「スロット」であり、ディスクに書き込まれたり、API のネットワーク プロトコルを破壊する永続的な方法で使用されたりしないことを前提としています。等

これを行う機能により、小さなクラスのバグを除外できます...

  • enum フラグ値は、連続したビットを使用する必要があります。
  • enum フラグ ビットはオーバーラップしてはなりませ

enumビットの追加/削除では、その識別子の後のすべての値を変更する必要がないという利点があります。

確かに、これは常に利用したい機能ではありません。しかし、それが役立つ稀なケースがあります。


既存のソリューション (不十分)

あるレベルでは機能するが満足していない既存の(貧弱な)ソリューションに注目する(これが質問をする理由です)

2つの列挙型の使用

機能しますが、フラグを直接定義するよりも大きな利点はありません。


GCC の使用__COUNTER__

主な欠点は、GCC でのみ動作し、名前空間を汚染する列挙型を使用するために一意の開始値を定義することに依存していることです。

0 投票する
5 に答える
5721 参照

c# - int値をFlag列挙型のint値にキャストする方法

私はこのフラグ列挙型を持っています:

int 値から int 値 (または複雑な列挙項目の int 値のリスト) を取得したい:

この質問に対するあなたの解決策は何ですか?

0 投票する
1 に答える
817 参照

c# - Flags 列挙型を 2 つの等しい値でシリアライズする

次のようなフラグ列挙型を定義したい:

プロパティを持つオブジェクトを作成し、Numbersそのプロパティを に設定するとしますEvenNumbers。現在は のみプロパティに含まれていますが、将来追加する場合はプロパティにも含まれるようTwoに指定したいと思います。EvenNumbersFour

ただし、 を使用してこのオブジェクトをシリアル化XmlSerializer.Serializeすると、XML はTwo、現在は同じ基になる値であるためと表示されます。

シリアライザーにこのプロパティを強制的にシリアライズさせるにはどうすればよいEvenNumbersですか?

0 投票する
1 に答える
2555 参照

c# - 列挙型の複数のフラグを組み合わせる?

SpeechLibs Talk() 関数に複数のフラグを使用しようとしています。これは私がやろうとしていることです:

ただし、次のエラーが表示されます。

エラー 1 演算子 '+' は、型 'SpeechLib.SpeechVoiceSpeakFlags' および 'SpeechLib.SpeechVoiceSpeakFlags' c:\users\max\documents\visual studio 2013\projects\switch\switch\default_tts_screen.cs 62 51 Switch のオペランドに適用できません

ただし、ドキュメントには、これが可能であることが明確に記載されています。

私は C# を使用していますが、これは何も変更しないことに注意してください。そうですか?.. 何時間も前から頭がテーブルにぶつかっているので、この問題を解決してください。私はこれに対する解決策をオンラインで見つけていません。

0 投票する
1 に答える
328 参照

model-view-controller - MVC 列挙フラグ: 最初の列挙値が常に真なのはなぜですか?

だから、私はフラグ付きの列挙型を持っています:

問題は、私が何を設定しても、「なし」が常に真であることです...何があっても。次のように設定したとします。

次に、それを表示してみてください。

ここで、Model.SiteVisibilityFlags.HasFlag(svf) は「None」に対して常に true であり、そうであってはなりません。データベースで検証され、値は「1」です...しかし、なしはまだチェックされています。Corporate、Properties、および Kiosk の単一および組み合わせのすべての順列を試してみました。

私は何が欠けていますか?