Ich arbeitete mit ??
Operator in C# 4 und fand eine interessante Funktion.Wie funktioniert der C# -Operator?
Diese Codezeile immer-existingObject
null zuweist, wenn es ohnehin schon ist null
unabhängig von der searchForObject()
Rückgabewert (searchForObject ein nicht null-Objekt zurückgibt, in der Tat ist es eine LINQ-Anweisung nicht eine Funktion ist, und wenn die folgende Aussage wenn Konstrukt mit einfacher ersetzt wird, dann wird existingObject ein nicht null-Objekt zugewiesen werden):
existingObject = extstingObject ?? searchForObject();
Könnte jemand erklären, warum?
Hier a link auf MSDN ist, heißt es:
Ein Nullable Type einen Wert enthalten kann, oder es kann nicht definiert sein. Das ?? Der Operator definiert den Standardwert, der zurückgegeben werden soll, wenn einem Typ ohne NULL-Wert ein nullwertfähiger Typ zugewiesen ist. Wenn Sie versuchen, einen nullwertfähigen -Werttyp einem nicht nullbaren Werttyp zuzuweisen, ohne den Wert zu verwenden? Operator, Sie werden einen Kompilierungsfehler erzeugen. Wenn Sie einen Cast verwenden und der Nullwerttyp Nullwert derzeit nicht definiert ist, wird eine InvalidOperationException-Ausnahme ausgelöst.
Der Teil über das Zuweisen eines nullfähigen Typs zu einem nicht nullfähigen Typ ist nicht das, was ich erwartet habe.
Das Problem der Initialisierung von lokalen Variablen im Debugger von Visual Studio 2010.
Anscheinend gibt 'searchForObject'-Methode null zurück. –
Gibt es einen Tippfehler ?? – Jon
Vielleicht, weil 'searchForObject()' immer Null zurückgibt/ – Aliostad