Como otros han mencionado, ?
se utiliza para declaring a value type as nullable.
Esto es grande en un par de situaciones:
- Al tirar de datos de una base de datos que tiene un valor nulo almacenado en un campo anulable (que se asigna a un tipo de valor .NET)
- Cuando necesidad de representar "no especificado" o "no encontrado".
Por ejemplo, considere una clase utilizada para representar la opinión de un cliente que se le pidió una serie de preguntas no obligatorias:
class CustomerFeedback
{
string Name { get; set; }
int? Age { get; set; }
bool? DrinksRegularly { get; set; }
}
El uso de tipos anulables por Age
y DrinksRegularly
se puede utilizar para indicar que el cliente no respondió estas preguntas.
En el ejemplo que cita, tomaría un valor null
para LastLogon
para indicar que el usuario nunca ha iniciado sesión.
El enlace en su publicación es en realidad a la ?? operador, que es el operador coalescente nulo no relacionado pero muy bueno. –
Lea la sección 4.1.10 de la especificación C# para más detalles. –
@Charlie: Creo que fue un duplicado en piel de oveja hasta que lo reformulé en el título. –