Monday, August 14, 2006

uso peculiar del operador coallesce ?? en C#

Acabamos de escribir un codigo que contiene algo asi (ignoren los nombres, solo estoy ilustrando el punto):

return misCollecciones.Servicios ?? (misCollecciones.Servicios = db.CargarServicios());

one sola linea que hace varias cosas, y aun asi es claro lo que se esta haciendo; si ya conoces el operador ?? talvez ya hasta aqui sea suficiente, si no lo sabes, he aqui una explicacion un poco mas extendida

el operador ?? regresa el operador de la izquierda, si es que este no es NULL, de lo contrario regresa el operador de la derecha

osea, que este codigo es equivalente a:

if (misCollecciones.Servicios == null)

misCollecciones.Servicios = db.CargarServicios();

return misCollecciones.Servicios;

No comments: