泛型类声明中的静态变量,在相同封闭构造类型所有实例中被共享,但在不同封闭构造类型的实例中,是不被共享的。
Posted on 2005-11-24 16:22 wellgo 阅读(312) 评论(0) 收藏 举报今天在一个泛型类中使用了一个静态变量,发现在一个方法中改变了值,而在另一个方法中取出的始终是默认值。查了一下文档,发现因为在运行时,不同的封闭构造类型,是属于不同的类型,比如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
{
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
}
}
浙公网安备 33010602011771号