問題タブ [properties]
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.
c# - ConfigurationManager.AppSettings のパフォーマンスに関する懸念事項
ConfigurationManager.AppSettings
すべての構成設定をアプリケーションの app.config セクションに (クラスを使用して) 保存する予定です。ユーザーがアプリの UI を使用して設定を変更すると (チェックボックスをクリックする、ラジオ ボタンを選択するなど)、それらの変更を に書き出す予定AppSettings
です。同時に、プログラムの実行中は、AppSettings
常にデータを処理するプロセスから常にアクセスする予定です。UI を介した設定の変更は、リアルタイムでデータ処理に影響を与える必要があるため、プロセスはAppSettings
常に にアクセスします。
これはパフォーマンスに関して良い考えですか?を使用AppSettings
することは、.Net アプリを作成するときに構成設定を保存してアクセスするための「正しい方法」であると思われますが、この方法は一定の負荷を意図していないのではないかと心配しています (少なくとも設定が常に読み取られるという点では)。
誰かがこれを経験したことがあるなら、私は大いに感謝します。
更新:おそらくいくつかの点を明確にする必要があります。
これは Web アプリケーションではないため、データベースをアプリケーションに接続することは、単に構成設定を保存するためだけにやり過ぎかもしれません。これは Windows フォーム アプリケーションです。
MSDN のドキュメントによると、ConfigurationManager
はアプリケーション レベルの設定だけでなく、ユーザー設定も保存するためのものです。(たとえば、アプリケーションが部分信頼アプリケーションとしてインストールされている場合は特に重要です。)
更新 2:Properties
アプリケーション (データベースなど) に追加のレイヤーを追加する必要がなく、確かに良いソリューションのように見えるため、lomaxx の回答を受け入れました。プロパティを使用する場合、他の人が提案したすべてのキャッシュが既に行われています。これは、すべての変更とその後の読み取りがすべてメモリ内で行われることを意味し、非常に高速になります。プロパティは、明示的に指示された場合にのみ変更をディスクに書き込みます。つまり、実行時にオンザフライで構成設定を変更し、プログラムの終了時にディスクへの最終的な保存のみを行うことができます。
必要な負荷を実際に処理できるかどうかを確認するために、ラップトップでテストを行ったところ、プロパティを使用して毎秒 750,000 回の読み取りと 7,500 回の書き込みを行うことができました。これは、私のアプリケーションが必要とするレベルをはるかに超えているため、パフォーマンスに影響を与えずにプロパティを使用しても安全だと感じています。
c# - C# コードを動的に評価するにはどうすればよいですか?
eval("something()");
JavaScript でコードを動的に実行することができます。C# で同じことを行う方法はありますか?
私がやろうとしていることの例は次のとおりです: 私は整数変数 (たとえばi
) を持っており、「Property1」、「Property2」、「Property3」などの名前で複数のプロパティがあります。の値に応じて、「Property ii
」プロパティで。
これは Javascript を使用すると非常に簡単です。C#でこれを行う方法はありますか?
.net - プロパティを使用してディクショナリ内のキーと値のペアを参照するための最良の方法
これはかなり些細なことですが、人々の意見を聞いてみたいと思います。
プロパティを介してアクセスする辞書がある場合、これらの形式のどれをプロパティに使用しますか?
これはおそらくそれを行うための典型的な方法です。かなり効率的で、理解しやすいなどです。唯一の欠点は、キーのスペルを間違えたり、1つのインスタンスなどを変更したりする可能性があるため、キーが長くなったり複雑になったりすることです。
これは少し複雑ですが、安全性が向上しているようで、「コードコンプリート」ソリューションとして私が考えるものに近いものです。欠点は、プロパティの上に///ブロックと[DefaultValue()]ブロックがすでにある場合、そこに少し混雑し始めることです。
では、どちらが好きですか、そしてその理由は何ですか?誰かもっと良いアイデアはありますか?
c# - 自動実装されたプロパティのバッキング変数にアクセスするにはどうすればよいですか?
以前は、次のようにプロパティを宣言していました。
これで、次のことができます。
私の質問は、この表記法を使用して自動的に作成されたプライベート変数にどのようにアクセスできますか?
パブリックアクセサー「Age」ではなく、プライベート変数にアクセスしたいと思います。プライベート変数にアクセスするためのデフォルトの表記法はありますか、それとも不可能ですか?
c# - コードが繰り返される c# プロパティ
次のような一連のプロパティを持つクラスがあります。
これらのバッキング ストアを生成するために C# 3.0 に頼ることができれば、はるかに簡単になりますが、IsDirty=true; を除外する方法はありますか? プロパティを次のように記述しても、同じ動作が得られるようにします。
c# - VS プロパティ ウィンドウに表示されないように UserControl プロパティを設定する
パブリック プロパティを持つ Asp.net プロジェクトに UserControl があります。ユーザーが IDE で UserControl のインスタンスを強調表示したときに、このプロパティが Visual Studio の [プロパティ] ウィンドウに表示されないようにします。表示されないようにするには、どの属性 (または他の方法) を使用すればよいですか?
c# - ゲッターのみのプロパティをオーバーライドしてセッターを追加できないのはなぜですか?
次の C# コードが許可されないのはなぜですか。
CS0546 'ConcreteClass.Bar.set': 'BaseClass.Bar' にはオーバーライド可能な set アクセサーがないため、オーバーライドできません
javascript - JavaScript オブジェクトのプロパティを列挙するにはどうすればよいですか?
JavaScript オブジェクトのプロパティを列挙するにはどうすればよいですか?
実際には、定義済みのすべての変数とその値を一覧表示したいのですが、変数を定義すると、実際にはウィンドウ オブジェクトのプロパティが作成されることを学びました。
.net - C++/CLI プロパティによるダブルサンクの回避
メソッドがアンマネージ コードから呼び出されないことがわかっている場合は、関数呼び出しで __clrcall デコレータを使用してダブルサンクを回避する必要があることを(Nish Sivakumar の著書C++/CLI In Actionなどで) 読みました。Nish はまた、メソッド シグネチャに CLR 型が含まれている場合、JIT コンパイラは自動的に __clrcall を追加すると述べています。C++/CLI プロパティを作成するときに __clrcall を含める必要があるかどうかはわかりません。ある意味では、プロパティは .NET 言語からのみアクセスできます。一方、C++/CLI コンパイラ (私が思うに) は、マネージ コードとアンマネージ コードの両方から呼び出し可能なメソッド (例: ***_get() ) を生成するだけです。では、プロパティで __clrcall 修飾子を使用する必要がありますか? もしそうなら、それはどこに行きますか? 取得/設定機能自体について?
c# - 「プロキシプロパティ」は良いスタイルですか?
実際にはセパレーターで結合された複数の文字列である文字列プロパティを持つクラスがあります。
次のようなプロキシプロパティを持つのが良い形かどうか疑問に思っています:
私が見落としているリスクはありますか?