Es ist die null-coalescing operator.
Es gibt das erste Argument zurück, sofern es nicht null ist. In diesem Fall wird das zweite Argument zurückgegeben.
x ?? y
entspricht in etwa dem (außer, dass das erste Argument nur einmal ausgewertet wird):
if (x == null)
{
result = y;
}
else
{
result = x;
}
Oder alternativ:
(x == null) ? y : x
Es ist nützlich für einen Standardwert für, wenn eine Bereitstellung von Wert kann null sein:
Color color = user.FavouriteColor ?? defaultColor;
COALESCE
Wenn in einer LINQ verwendet, um den ??
Operators SQL-Abfrage kann zu einem Aufruf von COALESCE übersetzt werden. Zum Beispiel dieser LINQ-Abfrage:
var query = dataContext.Table1.Select(x => x.Col1 ?? "default");
in dieser SQL-Abfrage führen kann:
SELECT COALESCE([t0].[col1],@p0) AS [value]
FROM [dbo].[table1] AS [t0]
Doppelte Frage von http://stackoverflow.com/questions/446835/what-do-two-question-marks-together-mean-in-c? – Crag
Entschuldigung, ich habe danach gesucht und konnte es nicht finden, also habe ich es gepostet. Vielen Dank an euch alle! Ich liebe diese Seite, es gibt eine Antwort für alles: D – pjnovas