En raison d'un bogue corrigé en C # 4, le programme suivant s'imprime true
. (Essayez-le dans 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()) { }
}
Dans VS2008 en mode Release, il lève une InvalidProgramException. (En mode débogage, cela fonctionne très bien)
Dans VS2010 Beta 2, il ne compile pas (je n'ai pas essayé la Beta 1); J'ai appris que la manière dure
Existe-t-il un autre moyen de créer this == null
en pur C #?