問題タブ [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 投票する
3 に答える
2796 参照

c# - [Flags] 列挙を文字列としてシリアル化する

クラスの [Flags] 列挙フィールドを、整数値 (例: 5) ではなく文字列表現 (例: "Sunday,Tuesday") としてシリアル化するように指定する方法はありますか?

具体的には、Web サービスで次の SomeClass 型を返すときに、"Days" という名前の文字列フィールドを取得したいのですが、数値フィールドを取得しています。

0 投票する
10 に答える
5116 参照

c# - フラグ列挙型の長さを見つける効率的な方法は?

このことを考慮:

現在、私は次のようにしています:

しかし、おそらくビットセット操作に基づいて、長さを見つけるより効率的な方法があることを願っています。

可能であれば、ソリューションが機能する理由と方法を説明してください。

また、これが重複している場合は、それを指摘してください。この質問を削除します。私が見つけることができたSOに関する唯一の同様の質問は、変数Colorsではなく、列挙型のすべての可能な組み合わせの長さを見つけることに関するものでした。myColors

更新: すべてのソリューションを慎重にベンチマークしました (それぞれ 1 000 000 回の反復)。結果は次のとおりです。

  1. Stevo3000 - 8ms
  2. マットエバンス - 10ms
  3. シルキー - 34ms
  4. ルーク - 1757ms
  5. グッファ - 4226ms
  6. トーマス・レベスク - 32810ms

Stevo3000 は明らかな勝者です (Matt Evans が銀メダルを保持しています)。

ご助力ありがとうございます。

更新 2: このソリューションはさらに高速に実行されます: 100 000 000 反復で 41 ミリ秒 (Stevo3000 よりも約 40 倍高速 (32 ビット OS))

0 投票する
18 に答える
198359 参照

c# - フラグの組み合わせのフラグが設定されているかどうかを確認する方法は?

私がこの列挙型を持っているとしましょう:

たとえばAB、設定されているかどうかを確認するには、次のようにします。

結合されたフラグ定数のフラグのいずれかが設定されているかどうかを確認する簡単な方法はありますか?

たとえば、&何かと交換できますか?

0 投票する
11 に答える
12591 参照

c# - 一連のブール値ではなく、フラグとビットマスクを使用するのはなぜですか?

1 つまたは複数の true/false 状態にある可能性のあるオブジェクトがある場合、プログラマーが複数のブール値を使用するだけでなく、フラグとビットマスクを頻繁に使用する理由について、私は常に少し曖昧でした。

それは .NET フレームワーク全体にあります。これが最良の例かどうかはわかりませんが、.NET フレームワークには次のものがあります。

したがって、アンカー スタイルが与えられた場合、ビットマスクを使用して、どの状態が選択されているかを把握できます。ただし、可能な値ごとに定義された bool プロパティ、または個々の列挙値の配列を持つ AnchorStyle クラス/構造体を使用して、同じことを達成できるようです。

もちろん、私の質問の主な理由は、自分のコードで同様の慣行に従うべきかどうか疑問に思っているからです。

では、なぜこのアプローチを使用するのでしょうか。

  • メモリ消費が少ない?(ブールの配列/構造体よりも消費量が少ないようには見えません)
  • 構造体や配列よりも優れたスタック/ヒープ パフォーマンス?
  • 比較操作の高速化 価値の付加/除去の高速化?
  • それを書いた開発者にとってより便利ですか?
0 投票する
4 に答える
7353 参照

c++ - バイナリ フラグを使用して状態、オプションなどを表す

バイナリの「フラグ」を使用して状態やオプションなどを表現したい場合は、それらを渡して、0001 と 0010 のようなオブジェクトに格納し、OPTION1 | OPTION2渡さOPTION1れるOPTION2ものが 0011 になるようにして、オプションの組み合わせを表します。 .

C ++でこれを行うにはどうすればよいですか? みたいなことを考えていた

しかし、理想的にdoSomethingは、与えられたオプションを解釈する方法を知っています。

私は正しい軌道に乗っていますか?より良い方法はありますか?

アップデート

Optionまた、すべての可能な組み合わせを定義する必要はありませんか?

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

.net - flagsattribute - 負の値?

権限を表すために使用する flagsattribute を持つ列挙型があります。比較if (CurrentPermissions & Permission1 == Permission1)などに使っています。

ただし、上限に達します。列挙値を使い果たしたら、-1、-2、-4 などの負の値を使用できますか?

0 投票する
7 に答える
11302 参照

.net - Linq to Entities クエリでフラグ列挙型を使用するには?

次のような [Flags] 列挙型があります。

Status 列挙には、次のような 2 つの値が含まれる場合があります。

ここで、linq クエリ (LINQ to ADO.NET エンティティ) を作成し、ステータスが s 上記のレコード、つまりアクティブまたは不明のレコードを要求する必要があります。

もちろん、LINQ to Entities は Where 句でプリミティブ型を処理することしか認識していないため、エラーが発生します。

エラーは次のとおりです。

タイプ 'Closure type' の定数値を作成できません。このコンテキストでは、プリミティブ型 (Int32、String、および Guid など) のみがサポートされます。

実行可能な方法はありますか?10 個の可能な値を持つステータス Enum があり、5 つのステータスをクエリする場合があります。Flags 列挙型を使用してエレガントな方法でクエリを作成するにはどうすればよいですか?

ありがとう。

アップデート

これは、Linq to Entities の問題のようです。LINQ to SQL で動作すると思います (わからない、テストしていません)。

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

ruby-on-rails - Rails ActiveRecord を属性に依存させるにはどうすればよいですか?

私は顧客のために ActiveRecord を作成しましたが、顧客はそれを望んでいるので、それが破棄されたとき、実際には手動のロールバックのために保持されます。

私がやりたいのは、「アクティブ」と呼ばれるブール属性を作成することです。デフォルトは 1 です。レコードが破棄されると、属性は 0 に切り替わります。

I know I could change all my queries to have an extra condition of active=1, or use scoping, or even use the type column and inheritance (which is what I'm doing to complete it ASAP).

Is there any way to tell an ActiveRecord that a record in the table is actually a record ONLY if an attribute is a certain value (in this case active=1), and if it's anything else, completely ignore it?

Thanks, Andrew

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

c# - 列挙型を [Flags] 列挙型にマップする

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

フィルターに基づいて、これらのテレビのリストを返すメソッドがあります。また、フィルターは Enum で表されます。

質問: ItemStatus の特定のインスタンスが ItemStatusFilter の特定のインスタンスと一致するかどうかを確認する巧妙な方法は何ですか?

ItemStatus メンバー (1,2) に値を割り当てるという考えは嫌いです。その列挙では必要ないからです。現在、私のコードは次のようになっています。

これらの線に沿ったものはどうですか?

目標は、コードの量を減らし、型間の結合を減らすことです。

enum TagStatusFilterここで悪用されているように感じますか?

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

linux - ヘッダーに存在する TCP フラグ

私のubuntu 9.04では、/usr/include/netinet/tcp.hはtcpヘッダーを次のように定義しています

フラグ セクションでは、FIN、SYN、RST、PSH、ACK、URG 値が定義されていますが、ECE および CWR フラグが見つかりません。struct tcphdr で定義されている res1、res2、doff の値は何を意味していますか? ECE および CWR フラグの値にもアクセスする方法はありますか?

ありがとう。