En raison d'un bogue corrigé dans C # 4, le programme suivant 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 génère une exception InvalidProgramException. (En mode de débogage, cela fonctionne bien)
Dans VS2010 Beta 2, il ne compile pas (je n'ai pas essayé la version bêta 1); J'ai appris que le chemin dur
Existe-t-il un autre moyen de rendre this == null
en C # pur?