Do một lỗi đã được sửa trong C # 4, chương trình sau sẽ được in true
. (Dùng thử trong 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()) { }
}
Trong VS2008 ở chế độ Phát hành, nó sẽ ném một UnlimitedProgramException. (Ở chế độ Gỡ lỗi, nó hoạt động tốt)
Trong VS2010 Beta 2, nó không biên dịch (Tôi đã không thử Beta 1); Tôi đã học một bài học đắt giá
Có cách nào khác để tạo ra this == null
C # thuần túy không?