Через помилку, яку було виправлено у 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 #?