I have this code as an example:
class A<T> {
public class B : A<long> {
public void f() {
Console.WriteLine( typeof(T).ToString());
}
public class C : A<long>.B { }
}
}
class Prg5 { static void Main() {
var c = new A<float>.B.C();
c.f();
} }
With output:
System.Int64
Why does it print the type for long? How and where does the float type passed originally get replaced?