在非静态类实例中c#静态变量的行为是什么?

时间:2013-03-10 00:58:19

标签: c# class static

当我在类中声明一个静态变量然后多次实例化该类时会发生什么?

静态变量是否会在所有实例之间共享?或者是否会为每个类实例创建多个静态变量?

1 个答案:

答案 0 :(得分:8)

C#中的static字段在所有类型的实例中共享。无论您实例化类型多少次,每个AppDomain只会有一个静态字段实例(每个进程通常只有一个AppDomain)。

一个例外是泛型类型。当您在泛型类型中有静态字段时,每个泛型实例化将有一个静态字段实例。

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

现在Container<int>Container<string>将有Field

的不同实例