問題タブ [static-classes]
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.
php - すべてのクラスのインスタンス化で同じデータを別の静的クラスに保持する必要がありますか?
各クラスで同じになるデータや関数を参照する必要があるインスタンス化されるクラスがある場合。適切なプログラミング手法に従うために、これをどのように処理する必要がありますか
例 (PHP):
次に、列が作成されるたびに、$_validTypes
変数が保持されます。type_is_valid
この変数は、作成されたすべての列が変数を保持する静的クラスの静的関数を参照できるメモリ内で一度だけ定義する必要があり、$_validTypes
一度だけ宣言されます。
静的クラスのアイデアは、たとえばColumnHelper
、ColumnHandler
これを処理する良い方法ですか? または、このクラス内に静的データとメソッドを保持する方法はありますか? または、この$_validTypes
for each Column の再定義は、物事を行うための適切な方法ですか?
c# - 辞書への静的クラスC#で
文字列プロパティのみを含む静的クラスがあります。key=PropName
そのクラスを、、の名前と値のペアの辞書に変換したいと思いvalue=PropValue
ます。
以下は私が書いたコードです:
出力
プロパティを読み取っていません-誰かが私のコードの何が問題になっているのか教えてもらえますか?
kohana - コハナ ヘルパー アトリビュート
私を悩ませ続けている質問があります。現在、Kohana 3.2 フレームワークの使用を開始しました。いくつかの機能を処理するためのヘルパーを作成しました。(あるべき姿であるが) STATIC と宣言されている多数のメソッドがあります。しかし、これらのメソッドはすべて何らかの形でデータベースを操作しているため、モデルをロードする必要があります。現在、すべてのメソッドには次のような非静的変数があります。
$comment = 新しい Model_Comments;
$comment->addComment("abc");
OK、うまくいっているようですが、クラス属性を使用してモデルのインスタンスを保持することで、この冗長性を取り除きたいと思いました (is クラスもあります)。
このようなもの:
プライベート静的 $comment; // 属性宣言
self::$comment = new Model_Comment; // これはヘルパー __constuct メソッド内で行われます
self::$comment->addComment("abc"); // メソッド内で呼び出します。
しかし、私は失敗しました:非オブジェクトでのメンバー関数 addComment() への呼び出し
質問: それは可能ですか? 多分他のアプローチがいくつかありますか?
長文失礼しました、アドバイスよろしくお願いします!:P
c# - 静的アンマネージ dll C# ラッパーとマルチスレッド、マルチドメイン
おはようございます。
これが私のシナリオです。私は、FooDevice と呼ばれる自動高速ペイバック デバイスと対話する、サード パーティの管理されていない foo.dll を持っています。私は foo.dll のメソッドのラッパーを作成し、それを FooWrapper と呼び、マーシャリングと少しのハンマーで最終的に機能させました。ご存知かもしれませんが、公開されてDllImport
いるすべてのメソッドを使用する場合は、としてマークする必要がありstatic
、extern
foo.dll はいくつかのメソッドとコールバック関数ポインターを公開します。異なるスレッドで 2 つのデバイスを同時に接続しようとすると、このコールバック関数をフックしようとするとラッパーがハングします。静的なものはスレッド共有であることを知っているので、AppDomain
FooWrapper インスタンスごとに異なるものを使用することを考えました。それがこの種の仕事をする正しい方法だと思いますか?
ここに私のFooWrapperのビット:
FooWrapper を複数回 (同じスレッドまたは別のスレッドまたは AppDomain で) 正しくインスタンス化する方法を教えてください。
君たちありがとう。乾杯、ナンド
c# - C#で同じ名前の2つの静的クラスを使用する
C#プロジェクトに含めたDLLがあります。これを「one.dll」と呼びましょう。このDLLには、「staticclass」という名前の静的クラスが含まれています。
同じプロジェクトに含めた別のDLLがあります。これを「two.dll」と呼びましょう。このDLLには、「staticclass」という名前の静的クラスも含まれています。
プロジェクトに両方のDLLを同時に含めて、「staticclass」にアクセスしようとすると、当然エラーが発生します。クラスの名前を変更したり、何らかのエイリアスを付けたりする方法はありますか?たとえば、「one.dll」の「staticclass」はそのままで、「two」の「staticclassTwo」にエイリアスを付けることができます。 .dll "
「one.dll」と「two.dll」の両方のソースコーデックにアクセスできないことに注意してください
singleton - System.Web.HttpRuntime.Cacheの代わりに静的クラスまたはシングルトンクラスを使用しますか?
私は、ソフトウェアの問題を解決するためにハードウェアを投入することは最善の策ではないと確信しています。そのため、サーバーの1つ(現在2ギガで実行されている)でいくつかのメモリの問題に気付いたとき、System.Web.HttpRuntime.Cacheの使用まで追跡しました。いくつかのサイトでは、これは理にかなっていますが、System.Web.HttpRuntime.Cacheを使用する50のサイトをスローすると、壁が崩れ始めました。
外部キャッシングサーバーのオプションがない場合、グローバルデータ保持に静的クラスまたはシングルトンのいずれかを使用するようにコードを変更することを検討しています(他のオプションは追加のdbリクエストを作成することです)。
データはまだ「メモリ内」にあり、サーバーにより多くのメモリを投入する必要があるかもしれないので、これに変更があるかどうかは完全にはわかりません。
シングルトンクラスまたは静的クラスでSystem.Web.HttpRuntime.Cacheを使用すると、オーバーヘッドが大幅に増加しますか?この問題を解決するために推奨されるアプローチは何ですか?
- アップデート -
現在のファイルキャッシュのメモリ使用量を監視しているときに、同じアプリケーションプール上のいくつかのサイトにアクセスしたときに、この数が急増していることに気付きました。この数はわずか1,000,000(私が想定しているバイト)に跳ね上がりました。アクティブなフラッシュエントリの数が増加してから減少するにつれて、この数は最終的に減少し始めることに気付きました 。
複数のアプリプールでこの数が多いと問題が発生するように見えるので、どうすればこれをすばやくフラッシュできますか?
キャッシュをリッピングするだけでなく(提案されているように、おそらく最善のアイデアではありません)、キャッシュされたオブジェクトの有効期限を短く設定するだけで、より良い結果が得られる可能性がありますか?
c# - ブール値と静的メソッドの戻り値の文字列を含む C# の組み込み型はありますか?
関数またはメソッドから返される型を探しています。最初に成功したかどうかを伝え、次にメッセージを (文字列として) 添付して、失敗した理由に関する詳細情報を渡します。アプリケーション終了コードの行にある可能性があります。ただし、特定のエラー メッセージにインデックスを付けるために終了コードのセット全体を作成することはしません。私は単一の「成功」終了コードのアイデアが好きなので、呼び出しが失敗したかどうかをすばやく確認し、それに応じて動作することができます。
これを一連の静的メソッド (サービス呼び出しなど) の戻り値の型にしたかったので、これら 2 つのフィールド (bool と string) を持つクラスを作成するだけで済みました。しかし、私はそれを見つけることができませんでしたが、これらのようなものがすでに存在する可能性があると感じています. また、メソッドからの戻り値を処理してこの種の情報を取得するためのより良い方法や、これらの種類の静的クラス全体に対する一般的なルールがある場合は、コメントを歓迎します.
視覚化を改善するには:
c# - 低レベルの違い:静的メソッドを使用した非静的クラスと静的メソッドを使用した静的クラス
非静的クラスの静的メソッドを次のように使用できないという事実を除いて、静的メソッドで非静的クラスを使用することと、同じ静的メソッドで静的クラスを使用することの一般的な利点(または欠点)は何ですか?拡張メソッド。
例えば:
これに対して:
ある方法を別の方法よりも使用することのパフォーマンス/メモリへの影響は何ですか?
注:クラスをインスタンス化する必要がないとします。私のユースケースシナリオは、次のようなものに限定されています。
c# - 静的メソッドで「this」を返す
流暢なインターフェイスを備えた静的クラスを作成したいのですが、次のエラーが発生します。
'this' は、静的プロパティ、メソッドでは無効です ...
これが私のコードです:
これにより、私はすることができますMyClass.Root().And().Something();
これを行う方法または回避策はありますか?