-4

クラスで静的変数を宣言してから、クラスを何度もインスタンス化するとどうなりますか?

静的変数はすべてのインスタンスで共有されますか?または、クラスインスタンスごとに複数の静的変数が作成されますか?

4

1 に答える 1

8

C#のstaticフィールドは、タイプのすべてのインスタンスで共有されます。タイプをインスタンス化する回数に関係なく、静的フィールドのインスタンスはAppDomain1つにつき1つだけです(通常AppDomainはプロセスごとに1つ)。

これに対する1つの例外は、ジェネリック型です。ジェネリック型の静的フィールドがある場合、ジェネリックインスタンス化ごとに静的フィールドのインスタンスが1つあります。

class Container<T> {
  internal static T Field;
}

現在Container<int>Container<string>さまざまなインスタンスがありますField

于 2013-03-10T00:59:19.000 に答える