Karena bug yang diperbaiki di C # 4, program berikut dicetak true
. (Cobalah di 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()) { }
}
Dalam VS2008 dalam mode Rilis, ia melempar InvalidProgramException. (Dalam mode Debug, itu berfungsi dengan baik)
Dalam VS2010 Beta 2, itu tidak dikompilasi (saya tidak mencoba Beta 1); Saya mempelajarinya secara susah-payah
Apakah ada cara lain untuk membuat this == null
C # murni?