首先檢視下面的代碼:
public class MyList<T>
{
public static int Count { get; set; }
public MyList()
{
Count++;
}
}
class Program
static void Main(string[] args)
MyList<int> list1 = new MyList<int>();
MyList<int> list2 = new MyList<int>();
MyList<string> list3 = new MyList<string>();
Console.WriteLine(MyList<int>.Count);
Console.WriteLine(MyList<string>.Count);
Console.ReadKey();
輸出的結果:
2
1
從輸出結果可以看出來,不同的資料類型,他們之間的靜态成員是不共享的,同一資料類型之間可以共享靜态成員。但是非泛型類型中的泛型方法并不會再運作時的本地代碼中生成不同的類型。例:
public class MyList
public static int Count { get; set; }
public static int Func<T>()
{
return Count++;
Console.WriteLine(MyList.Func<int>());
Console.WriteLine(MyList.Func<string>());
輸出結果: