由于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#制作吗?