Информация об изменениях

Сообщение Курьёз от Липперта от 16.12.2016 17:30

Изменено 16.12.2016 17:31 Don Reba

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.C()).M(); }
}


public class A[T] {
    public class B : A[int] {
        public M() : void { System.Console.WriteLine(typeof(T)) }
        public class C : B {}
    }
}
A.[string].B.C().M()


Удивился, что C# и Nemerle дают разные ответы.
Курьёз от Липперта
http://www.dotnetcurry.com/csharp/1292/eric-lippert-interview

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.C()).M(); }
}


public class A[T] {
    public class B : A[int] {
        public M() : void { System.Console.WriteLine(typeof(T)) }
        public class C : B {}
    }
}
A.[string].B.C().M()

Удивился, что C# и Nemerle дают разные ответы.