有人可以向我解釋爲什麼下面的代碼輸出它的作用? 爲什麼T是第一個字符串,而不是Int32,爲什麼它在下一個輸出中是相反的情況?繼承和泛型類型設置
這讓人不解的是從interview with Eric Lippert
當我看到通過代碼,我真的不知道,如果它的將是一個Int32或String:
public class A<T>
{
public class B : A<int>
{
public void M() { System.Console.WriteLine(typeof(T)); }
public class C : B { }
}
}
public class P
{
public static void Main()
{
(new A<string>.B()).M(); //Outputs System.String
(new A<string>.B.C()).M(); //Outputs System.Int32
Console.Read();
}
}
https://blogs.msdn.microsoft.com/ericlippert/2007/07/30/an-inheritance-puzzle-part-two/ –