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