Es la null-coalescing operator.
Devuelve el primer argumento a menos que sea nula, en cuyo caso se devuelve el segundo.
x ?? y
es más o menos equivalente a esto (excepto que el primer argumento se evalúa sólo una vez):
if (x == null)
{
result = y;
}
else
{
result = x;
}
O, alternativamente:
(x == null) ? y : x
Es útil para proporcionar un valor predeterminado para cuando una valor puede ser nulo:
Color color = user.FavouriteColor ?? defaultColor;
COALESCE
Cuando se utiliza en una LINQ a SQL consultar al operador ??
se puede traducir a una llamada a COALESCE. Por ejemplo, esta consulta LINQ:
var query = dataContext.Table1.Select(x => x.Col1 ?? "default");
puede dar lugar a esta consulta SQL:
SELECT COALESCE([t0].[col1],@p0) AS [value]
FROM [dbo].[table1] AS [t0]
pregunta duplicados de http://stackoverflow.com/questions/446835/what-do-two-question-marks-together-mean-in-c? – Crag
Lo siento, lo he buscado y no pude encontrarlo, así que lo publiqué. ¡Muchas gracias a todos ustedes! Me encanta esta página, hay una respuesta para todo: D – pjnovas