問題タブ [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 に答える
270 参照

c# - [Flags] 列挙型で定義されていない場合、None の値をどのように表現すればよいですか?

今日 XNA を使用しているときに、使用する列挙型の 1 つに値[Flags]がないことに気付きました。None = 0

属性の適切な使用[Flags]に関するMSDNによると:

flags enumerations のゼロ値に名前を付けてくださいNone。フラグ列挙の場合、値は常にすべてのフラグがクリアされていることを意味する必要があります。

ボタンが押されていない値を示したい場合、値 0 を使用してにキャストする列挙型の意図に反しButtonsますか? 設計ガイドラインによると、この値を持つべきですが、そうではありません。

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

c# - 含まれているすべてのフラグを取得する

いくつかのフラグを含む変数があり、どのフラグが設定されているかを確認する方法を知っています。

私のフラグ。

そして、ここでフラグをチェックします

どうやら、この方法を使用してフラグを確認することはできません。

明確にするために、ボタンに設定されているフラグを知りたいです。

更新: Unity でゲームを作成し、Mono を使用しているため、Enum.hasFlag() を使用できません。どうやら Mono は hasFlag をまだサポートしていないようです。

0 投票する
3 に答える
203 参照

c# - C# 列挙型フラグ - 2 つの方法のバインディング - 列挙型 - クラス -列挙型

次の列挙型があります

UI では、ユーザーは月曜日、火曜日、水曜日など、特定の日を選択できます。ユーザーが選択した月曜、火曜、水曜は 7 です。この値はデータベースの Days という列に保存されます。

クラスがある場合:

その値 7 をバインドして、適切なプロパティを true または false にする方法を教えてください。例: 7 は月曜日、火曜日、水曜日の列挙型と同等です。値 7 をクラス Week に変換すると、結果はプロパティになります。月曜日、火曜日、水曜日が true で、残りが false です。

代わりに、月曜、火曜、水曜のプロパティが true であるクラスの週があり、それを列挙型の WeekDays に変換すると、結果は 7 になります。

どうやってやるの?

0 投票する
4 に答える
1299 参照

c# - 値が 0x2 の Enum フラグを理解できませんでした

コードの一部を理解しようとしていますが、これまでのところ理解できませんでした...

pp.HasFlag(Products.Dew)なぜとが なTrueのか知りたいpp.HasFlag(Products.Miranda)ですFalse。0x1 = 1、0x2 = 2、0x3 = 4、0x4 = 8、0x5 = 16 として動作していると思いました。何が起こっているのか教えてください

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

java - Java のコンストラクターにフラグを渡す (または渡さない)

ほぼ同じタスクに対して異なる名前のメソッドを持つことは理にかなっています。たとえば、

  • open(String filename);
  • createThenOpen(String filename); // First create the file with default contents, then process the file.

この命名方法は、コンストラクターでは機能しません。コンストラクターが上記のようなファイル名を取ると想像してください。2 つのケースを処理するためのさまざまなオプションがあります。

  1. コンストラクターの If ステートメント: ファイルが存在しない場合は作成します。コンストラクターの動作は暗黙的であり、呼び出し元が既存のファイルを開く代わりに不要なファイルを作成する可能性があるため、これは適切ではありません。
  2. コンストラクターにフラグを追加します: MyClass(String filename, boolean createNew). MyClass("hello.txt", true)like の呼び出しは不可解なので、あまり良くありません。
  3. 1 つの引数が常にファイルの存在を想定するようにオーバーロードし、追加のダミー パラメーターの存在はファイルを作成する必要があることを意味します。これも醜い。
  4. RandomAccessFile(File file, String mode)where modeis"r"などの文字列フラグを追加"rw"します。これは私の目的には非常に不格好です。
  5. のにenum似たフラグを追加します。かなりダサい感じも。Filescopy(Path source, Path target, CopyOption... options)
  6. 引数を取らないコンストラクターを用意し、オブジェクトが作成された直後に上記のような別のメソッドが呼び出されるようにします。指定されたファイルのデータを使用してインスタンス化せずにオブジェクトのインスタンスを作成するのは意味がないので、良くありません。

現在、私は実際には上記の番号 (6) を支持しているようで、パラメーターのないコンストラクターの直後に異なる名前の 2 つのメソッドを呼び出すだけです。オプションを見落としていませんか、またはこれらのシナリオに対する「所定の」アプローチはありますか?

編集:以下の他の人が指摘したように、もちろん7番目の、おそらく最も明白なオプションがあります:

  1. ファクトリメソッドを使用してください!
0 投票する
1 に答える
994 参照

c# - WPFで[Flags]列挙型の汎用スイッチを作成するには?

したがって、曜日の列挙型を定義しましたが、単純なグリッドを作成して、すべての曜日を表示し、自由に切り替えることができます (定期的なカレンダー日アプリを考えてください)。ただし、このパターンを[Flags]アプリ内の他の列挙型に適用したいので、このボイラー #plate コードを何度も何度も書きたくありません。助言がありますか?ありがとう!