Parece que hay algún tipo de confusión en el operador ternario. Sé que esto se ha abordado en otros hilos SO, pero siempre ha sido con elementos inactivables. Además, en mi caso, realmente estoy buscando una mejor manera.¿Uso conciso de DBNull? (¿Ternario?)
Me gustaría ser capaz de utilizar
proc.Parameters[PARAM_ID].Value =
string.IsNullOrEmpty(dest.Id) ? DBNull.Value : dest.Id;
sino que estoy atascado con esto:
if (string.IsNullOrEmpty(dest.Id))
{
proc.Parameters[PARAM_ID].Value = DBNull.Value;
}
else
{
proc.Parameters[PARAM_ID].Value = dest.Id;
}
El operador ternario falla porque no hay conversión posible entre DBNull y la cadena, y por más tonto que parezca, teniendo en cuenta que el valor es un objeto, el compilador me lo devuelve y me veo obligado a preocuparme. La respuesta a la versión que admite nulos de esta pregunta es simplemente lanzar nulo a la cadena y terminar con ella; Sin embargo, DBNull no se puede convertir en una cadena, así que no tuvimos suerte allí.
¿Hay una manera más concisa para hacer esto (sin utilizar nullables, por cierto?)
Gracias!
Oh. Duh. Y eso es para lo que stackoverflow es. ¡Gracias! – bwerks