由于在 C # 4中修复了一个 bug,下面的程序将打印 true
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) ; 我是通过艰难的方式学到这一点的
有没有其他方法可以使纯 C # 中的 this == null
?