2

静的プロパティを作成し、MyLanguageあるリクエストがその値を に設定し1、同時に別のスレッドがその値を に設定した2場合、 の最終的な値は何になりますMyLanguageか?

単一のMyLangugeプロパティは ASP.NET セッション間で共有されますか?

4

3 に答える 3

8

静的プロパティ/フィールドは、アプリ ドメイン全体で共有されます。したがって、すべてのセッションで同じ値が表示されるはずです。

唯一の例外は、静的フィールドでThreadStatic属性を使用する場合です。この場合、各スレッドは独自の値を参照します。例えば

[ThreadStatic]
static int counter = 0; // each thread sees a different static counter.
于 2013-07-26T06:30:40.413 に答える
2

2 になります。静的フィールド、プロパティはオブジェクト間で共有されるため、最新の設定値はすべてのインスタンスで更新されます。

MSDN から

static 修飾子を使用して、特定のオブジェクトではなく型自体に属する静的メンバーを宣言します。static 修飾子は、クラス、フィールド、メソッド、プロパティ、演算子、イベント、およびコンストラクターで使用できますが、インデクサー、デストラクター、またはクラス以外の型では使用できません。詳細については

于 2013-07-26T06:27:01.217 に答える
0

静的はアプリケーション ドメインに固有であり、そのアプリケーション ドメインのすべてのユーザーは各静的プロパティに対して同じ値を共有します。

静的という言葉を目にしたら、「これは 1 つしかない」と考えてください。そのインスタンスがどれくらい持続するかは別の問題ですが、簡単な答えはそれが可変であるということです.

ユーザーに固有の値を保存する場合は、Session Stateを調べます。

于 2013-07-26T06:29:07.783 に答える