Devido a um erro corrigido no C # 4, o programa a seguir é impresso true
. (Experimente no 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()) { }
}
No VS2008 no modo Release, lança uma InvalidProgramException. (No modo de depuração, funciona bem)
No VS2010 Beta 2, ele não é compilado (não tentei o Beta 1); Eu aprendi isso da pior maneira
Existe alguma outra maneira de criar this == null
em c # puro?