Thinking...

每日自省:内心的美德、处世的技巧、赚钱的技术
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

今天在一个泛型类中使用了一个静态变量,发现在一个方法中改变了值,而在另一个方法中取出的始终是默认值。查了一下文档,发现因为在运行时,不同的封闭构造类型,是属于不同的类型,比如List<int> List<string> 这二者的实例是不能共享静态变量的。
例如

class C<V>

{

    static int count = 0;

    public C()

{

count++;

}

public static int Count{

get{return count;}

}

}

class Application

{

       static void Main()

{

C<int> x1 = new C<int>();

Console.WriteLine(C<int>.Count);//打印 1

C<double> x2 = new C<double>();

Console.WriteLine(C<int>.Count);//打印 1

C<int> x3 = new C<int>();

Console.WriteLine(C<int>.Count);//打印 2

}

}