Z powodu błędu, który został naprawiony w C # 4, drukuje następujący program true
. (Wypróbuj w 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()) { }
}
W VS2008 w trybie wydania zgłasza wyjątek InvalidProgramException. (W trybie debugowania działa dobrze)
W VS2010 Beta 2 nie kompiluje się (nie próbowałem Beta 1); Nauczyłem się tego na własnej skórze
Czy istnieje inny sposób tworzenia this == null
w czystym języku C #?