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

c# - .Net4 Hasflagsで「または」動作する必要があります:enum.HasFlag(AccessRights.Read | AccessRights.Write)

HasFlagsの新機能を試していますが、次の機能が機能するかどうか疑問に思っていまし

enum.HasFlag(AccessRights.Read | AccessRights.Write)

...そうではないようです...

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

c# - [Flags] ベースの Enum を使用して ASP.NET MVC でアクセス制御を行い、SQL でパーミッション管理を int する

この質問は、ASP.NET MVC のアクセス制御に関するこの SO の質問に触発されています。ここでは、受け入れられた答えを具体的な解決策にしようとしています。

答えはFileSystemSecurity、アクセス許可を管理するためのインスピレーションとしての使用について言及しています。ここでは、Flags 属性を持つ列挙型も使用して、すべてのオブジェクトの ACL を定義しています。さらに、オブジェクトの各メンバーは SQL 内の列に格納されます。単純化された Linq2SQL、EF、または nHibernate ORM マッピングを想定します。

編集:このアプローチに次の利点/根拠を追加しました

このセキュリティ モデルは、ファイル レベルのアクセス許可を管理する .NET アプローチであるFileSystemRightsに触発されました。

私がこのアプローチを気に入っている主な理由の 1 つは、すべての個々の ACL を OR で結合することにより、すべてのアクセス許可の概要を簡単に作成できることです。また、継承されたアクセス許可を削除するために DENY ACL を追加できることも気に入っています。

/編集終了

enum次に、権限の低いユーザーと権限の高いユーザーの の数値を比較できることに気付きましたenum

この定義により、バックエンドで列挙型を解析する必要なく、SQL データベース内のユーザーをすばやく簡単に識別できるようになると考えています。( で権限のないユーザーを見つけますselect users from permissions where security < DBAceessRights.DetailRead)

フラグを定義した方法は次のとおりです(最小値には最小の権限があります)

ユーザー ID をオブジェクト固有の ACE に結合する権限テーブルがあります。これにより、特定の行での同時更新の必要性が減少します。 ここに画像の説明を入力

質問

  • これは良い考えですか?

  • 誰かが以前にそれをやったことがありますか (これよりも優れています)? (編集:ここで受け入れられた回答です

  • これがアクセス許可を実装する標準的な方法である場合、それは何と呼ばれますか?

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

c# - ループ内のパラメーターに列挙型フラグを追加する(ビット単位の追加)

C#では、列挙されたフラグを受け入れるパラメーターに値を「追加」しようとしています。ビット演算子「|」を使用して1行で実行できますが、ループ内のパラメーターに追加できないようです。

次の列挙型をフラグとして指定しています。

これで、次のコードを簡単に使用して、パラメーターにフラグ値を追加できます。

しかし、私がやりたいのは、CSV文字列(Web.Configから)から保護オプションのリストを取得し、それらをループしてmyObj.ProtectionOptionsプロパティに追加することです。ビット単位のOR「|」を使用せずにループでこれを行う方法がわかりません オペレーター。これが私がやりたいことです:

概念的には、これは私が望むものですが、パラメーターへのループ内の値を「+=」することはできません。

0 投票する
6 に答える
27254 参照

c# - 列挙型フラグのモデルバインドリスト

各レコードがそのレコードのフラグ値を決定するためのチェックボックスの行である列挙型フラグのグリッドがあります。これは、システムが提供する通知のリストであり、ユーザーは通知の配信方法を(それぞれについて)選択できます。

私はこの記事を見つけましたが、彼は単一のフラグ値を取り戻し、次のようにコントローラーにバインドしています(曜日の概念を使用):

MVC3モデルバインダーがフラグを処理できる場所が見つかりません。ありがとう!

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

nhibernate - 列挙型フラグによるNhibernateQueryOver

QueryOverによるクエリがあります:

列挙PersonEnumType型フラグです:

これはスローしますCould not determine member from (Convert(x.PersonEnumType) & Convert(value(NHibernate.Repository.PersonRepositoryNh+<>c__DisplayClass2).type))

もちろん、これはNhibernate.Linqで機能します。

なんで?

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

c# - ジェネリック列挙型のHasFlag?

私はC#で始めたばかりですが、早い段階で問題が発生しました。ジェネリックGenericsを呼び出すにはどうすればよいですか?.HasFlag()Enum

どうすれば[Flags]属性を追加できますか?

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

c# - 列挙型フラグをチェックするためのベスト プラクティス

enum フラグをチェックするための次の 2 つのパターンに気付きました。

enum フラグをチェックする 2 つの方法のうち、パフォーマンス、読みやすさ、コードの健全性、およびその他の考慮事項に関して、どちらが優れていますか?

ありがとう、モハメッド

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

c# - Flags列挙型に「All」アイテムを追加しても大丈夫ですか?

同時に存在できる複数の値を持つ列挙型がある場合は、Flags列挙型を作成します。

すべての値が設定されているという事実を伝えたい場合は、次のようにする必要があります。

すべての要素を追加することは、悪い習慣/有害/冒涜と見なされますか?

これにより、値が多く、すべてを渡すことが一般的なシナリオである場合に、スペースと時間を節約できます。

フラグ列挙型(=ビットフィールド)の仕組みを理解している限り、これは機能するはずです。私が見逃している副作用や、それをすべきでない他の理由はありますか?

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

c# - LINQを使用したフラグ付き列挙型統合(組み合わせの逆)

フラグが立てられた列挙の逆を生成しようとしています。以下は列挙型です:

MyType mtGroup1値が。のスタティックを定義しました(A | B)。を除いて、これの逆を生成したいと思いUnknownます。

私の解決策:

結果の値tは、でありC | D | E | F、これは望ましい結果です。この方法は機能しますが、LINQを使用して上記のように統合するより簡単な方法があることを望んでいました(他の、より簡単な場合は非LINQの方法も受け入れられます)。

ありがとう!