C # 4'te düzeltilen bir hata nedeniyle aşağıdaki program yazdırılır true
. (LINQPad'de deneyin)
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()) { }
}
Yayın modunda VS2008'de bir InvalidProgramException oluşturur. (Hata Ayıklama modunda, iyi çalışıyor)
VS2010 Beta 2'de derlenmiyor (Beta 1'i denemedim); Zor yoldan öğrendim
this == null
Saf C # ile yapmanın başka bir yolu var mı ?