È il null-coalescing operator.
Restituisce il primo argomento a meno che non sia null, nel qual caso restituisce il secondo.
x ?? y
è approssimativamente equivalente a questo (tranne che il primo argomento viene valutata una sola volta):
if (x == null)
{
result = y;
}
else
{
result = x;
}
alternativa:
(x == null) ? y : x
è utile per fornire un valore predefinito, in caso di valore può essere nullo:
Color color = user.FavouriteColor ?? defaultColor;
COALESCE
Quando utilizzato in un LINQ to SQL interrogare l'operatore ??
può essere tradotto in una chiamata a COALESCE. Ad esempio questa query LINQ:
var query = dataContext.Table1.Select(x => x.Col1 ?? "default");
può risultare in questa query SQL:
SELECT COALESCE([t0].[col1],@p0) AS [value]
FROM [dbo].[table1] AS [t0]
fonte
2010-09-28 18:08:10
Domanda duplicata di http://stackoverflow.com/questions/446835/what-do-two-question-marks-together-mean-in-c? – Crag
Siamo spiacenti, l'ho cercato e non sono riuscito a trovarlo, quindi l'ho pubblicato. Grazie mille a tutti voi ragazzi! Adoro questa pagina, c'è una risposta per tutto: D – pjnovas