問題タブ [enumeration]
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.
enumeration - ルックアップ テーブルのベスト プラクティス: DB テーブル... または列挙
会社で利用可能なポジションを保存する必要がある場合 (マネージャー、チーム リーダーなど)。それを保存するためのベストプラクティスは何ですか? 私はコメントで2つの意見を持っています...「もちろん、あなたを歓迎します」
- 列IDと名前を持つDBテーブルとして保存し、クエリと結合を使用して処理します。
- Enumとして保存し、DBテーブルを忘れてください。
私の意見では、アイテムを変更する場合は最初の解決策を選択します。これらのオプションを Enum としてハードコーディングしないようにします。
データが変更されないことに疑いの余地がない場合 (たとえば、性別: 男性、女性)、Enum ソリューションを選択できます。
注:私は英語でコーディングしており、UI カルチャはアラビア語である可能性があります。Enum ソリューションを使用する場合は、カルチャ ベースの文字列をプレゼンテーション レイヤーにハード コードしますが、ベスト プラクティスの観点からは問題ありません!!!!
あなたの意見を知りたいのですが、私の考えが最も推奨される「ベスト プラクティス」と一致するかどうかを教えてください。
c# - クラスをインターフェースで定義されているかのように扱います
私は100のクラスを持っており、それらにはいくつかの類似した要素といくつかの固有のものがあります。これらの類似したアイテムに名前を付けるインターフェイスを作成しました。例:interfaceIAnimal。私が通常することは次のとおりです。
しかし、100のクラスがあり、それらすべてを調べて、IAnimalを適用できるクラスを探す気にはなりません。
私がしたいのはこれです:
また
その後、
クラスを書くときにIAnimalを書くことなく、c#でフリルとだらしないものをIAnimalとして扱うようにする方法はありますか?
ありがとう!
編集(怠惰ではありません):クラスはSQLストアドプロシージャメタデータから生成されます。つまり、生成されるたびに戻って追加するか、コードジェネレーターを変更してインターフェイスにあるメンバーを識別する必要があります。実際、それは悪い考えではありません。とはいえ、ある種のジェネリックアプローチか何かがあることを望んでいました。
c++ - std::foreachをパラメータ/変更で使用する方法
私は自分が書いていることに気づきました
たくさんあり、これをステートメントに圧縮したいのですが、超冗長にならずにそこforeach
に入る方法がわかりません。param
私も
あの男も書き直したいです。何かご意見は?
ああ、また、いろいろな理由で、私はブーストを使いたくありません。
.net - GetCustomAttributes() は .NET で属性の順序を保持しますか?
タイトルはほとんどそれをすべて言います。クラスを介していくつかのリフレクションを行っている場合、MemberInfo.GetCustomAttributes() メソッドはメンバーの属性の順序を保持しますか? 公式ドキュメントには、いずれにしても何も書かれていません。
なぜこれが必要なのか疑問に思っている場合は、ここに完全な説明があります。それは長く、現在提起されている質問には必要ありませんが、属性の列挙順序に依存しない、より大きな問題に対する代替の解決策を誰かが考え出すことができるかもしれません。
かなり長い寿命が期待される (ASP.NET) アプリケーション用の柔軟なフレームワークを作成しようとしています。コースの過程で、メニューからアクセスできる必要がある多くのフォームが得られます。開発者の負担を軽減MenuItemAttribute
するために、フォームのクラスに適用できる を作成しました。この属性のコンストラクターには無制限の量の文字列パラメーターがあり、開発者はフォームがメニュー内のどこに存在するかを正確に指定できます。典型的な使用例は次のようになります[MenuItem("Company", "Clients", "Orders")]
これは、メニューに「会社」という項目があり、その下に「クライアント」という項目があり、その下に「注文」という項目があり、フォームが開くことを意味します。必要に応じて、単一のフォームにこれらの属性をいくつか含めることができます。これにより、メニューのいくつかの場所からアクセスできるようになります。
明らかに、アセンブリ内のすべてのクラスを列挙し、この属性を検索することにより、メニュー全体が実行時に構築されます。しかし最近、メニュー項目を事前定義された方法でソートする必要があるというリクエストを受け取りました。関連する機能を持つフォームは、メニュー内で隣り合わせにする必要があります。これはアルファベット順ではなく、開発者が指定した定義済みの順序であることに注意してください。
これにより問題が発生します。これらの属性で順序を指定するにはどうすればよいですか? 階層全体を記述するためMenuItemAttribute
、注文仕様には階層全体 (または少なくとも一部) の注文番号も含める必要があります。階層の下位レベルの注文番号だけでは十分ではありません。
別の属性 - を作成することもできますMenuItemOrderHintAttribute
が、複数ある場合に問題が発生しMenuItemAttribute
ます。したがって、元の質問。
MenuItemAttribute
2 つの配列またはペアの配列のいずれかを取るように を拡張することもできますが、それでは構文が非常に複雑になります。最後のアイデアは、文字列に特別な形式を持たせることができるということですが、それはかなり面倒です。
わかりました、別のアイデアがあります。Jon Skeet が提案した順序を使用しましょう。これにより、階層の上位レベルではなく、最終レベルの順序を指定できます。しかし、クラスだけでなく、アセンブリ自体にも適用されるように、属性を変更できます。この場合、メニュー項目にはフォームが関連付けられていません。アセンブリ レベルでは、これらの属性を使用して、階層の上位レベル間の順序を指定できます。
これは、集中型メニュー システムと分散型メニュー システムの間のトレードオフです。なぜこれが悪い考えになるのでしょうか?
c# - foreach 識別子とクロージャ
次の 2 つのスニペットで、最初のスニペットは安全ですか、それとも 2 番目のスニペットを実行する必要がありますか?
安全とは、各スレッドが、スレッドが作成されたのと同じループ反復から Foo のメソッドを呼び出すことが保証されていることを意味しますか?
それとも、新しい変数「ローカル」への参照をループの各反復にコピーする必要がありますか?
-
更新: Jon Skeet の回答で指摘されているように、これは特にスレッド化とは関係ありません。
design-patterns - 訪問者パターンで子を列挙する責任があるのはなぜですか?
私が見つけたコードに基づいて、訪問者は訪問したオブジェクトの構造を知り、必要な子を呼び出す必要があるようです。これは、訪問したクラスが変更された場合でも、訪問者が作業を継続したい場合に少し不格好に思えます。
本当の質問は次のとおりだと思います:訪問者のコードではなく、訪問したコードによって列挙が行われるパターンですか?
objective-c - Objective-C 2.0 と Fast Enumeration が例外をスローする
次のようなコード ブロックがあります。
これは技術的に Objective-C 2.0 の例外ですか? 高速列挙でコレクションを変更できないようです。これはエラーの結果です:
これを解決する最善の方法は何ですか?
javascript - javascriptのfor..inとforeach..inの違いは何ですか?
javascriptのfor..inステートメントとforeach..inステートメントの違いは何ですか?私が知らない微妙な違いはありますか、それとも同じで、ブラウザごとに異なる名前が付いていますか?
c# - XML-RPC と C# で列挙を使用するにはどうすればよいですか?
C# でクック コンピューティング XMLRPC フレームワークを使用しています。int を期待するリモート関数を呼び出しています。関数パラメーターにハードコーディングされた数字を使用して関数を呼び出すだけでなく、クライアント コードで列挙を使用したいと考えています。
コードは正常にコンパイルされますが、テスト中に XmlRpcUnsupportedTypeException がスローされます。このメッセージには、列挙を XML-RPC タイプにマップできないことが示されています。列挙型は次のとおりです。
見落としている単純なものがあるような気がしますが、指を置くことができないので、ここでバット信号を雲に照らしています!