クラスで静的変数を宣言してから、クラスを何度もインスタンス化するとどうなりますか?
静的変数はすべてのインスタンスで共有されますか?または、クラスインスタンスごとに複数の静的変数が作成されますか?
C#のstatic
フィールドは、タイプのすべてのインスタンスで共有されます。タイプをインスタンス化する回数に関係なく、静的フィールドのインスタンスはAppDomain
1つにつき1つだけです(通常AppDomain
はプロセスごとに1つ)。
これに対する1つの例外は、ジェネリック型です。ジェネリック型の静的フィールドがある場合、ジェネリックインスタンス化ごとに静的フィールドのインスタンスが1つあります。
class Container<T> {
internal static T Field;
}
現在Container<int>
、Container<string>
さまざまなインスタンスがありますField