C#4で修正されたバグのため、次のプログラムはを出力しtrue
ます。(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()) { }
}
リリースモードのVS2008では、InvalidProgramExceptionがスローされます。(デバッグモードでは、正常に動作します)
VS2010 Beta 2では、コンパイルされません(私はBeta 1を試していません)。私は難しい方法を学びました
this == null
純粋なC#で作成する他の方法はありますか?