Debido a un error que se corrigió en C # 4, se imprime el siguiente programa true
. (Pruébelo en LINQPad)
void Main() { new Derived(); }
class Base {
public Base(Func<string> valueMaker) { Console.WriteLine(valueMaker()); }
}
class Derived : Base {
string CheckNull() { return "Am I null? " + (this == null); }
public Derived() : base(() => CheckNull()) { }
}
En VS2008 en modo Release, arroja una InvalidProgramException. (En modo de depuración, funciona bien)
En VS2010 Beta 2, no se compila (no probé Beta 1); Aprendí que de la manera difícil
¿Hay alguna otra forma de hacer this == null
en C # puro?