A causa di un errore corretto in C # 4, viene stampato il seguente programma true
. (Provalo in 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()) { }
}
In VS2008 in modalità Release, genera un InvalidProgramException. (In modalità Debug, funziona benissimo)
In VS2010 Beta 2, non viene compilato (non ho provato Beta 1); L'ho imparato nel modo più duro
C'è un altro modo di fare this == null
in C # puro?