






















今天在一个泛型类中使用了一个静态变量,发现在一个方法中改变了值,而在另一个方法中取出的始终是默认值。查了一下文档,发现因为在运行时,不同的封闭构造类型,是属于不同的类型,比如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
}
}
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。