Il semble qu'il y ait une certaine confusion de type dans l'opérateur ternaire. Je sais que cela a été abordé dans d'autres threads SO, mais il a toujours été avec des valeurs nulles. En outre, pour mon cas, je suis vraiment à la recherche d'un meilleur moyen.Utilisation concise de DBNull? (Ternaire?)
Je voudrais pouvoir utiliser
proc.Parameters[PARAM_ID].Value =
string.IsNullOrEmpty(dest.Id) ? DBNull.Value : dest.Id;
mais je suis coincé avec ceci:
if (string.IsNullOrEmpty(dest.Id))
{
proc.Parameters[PARAM_ID].Value = DBNull.Value;
}
else
{
proc.Parameters[PARAM_ID].Value = dest.Id;
}
L'opérateur ternaire échoue parce qu'il n'y a pas de conversion possible entre DBNull et chaîne, et aussi bête que cela puisse paraître étant donné que Value is object, le compilateur me le renvoie et je suis forcé de m'en soucier. La réponse à la version nullable de cette question est juste de lancer null à la chaîne et être fait avec elle; DBNull ne peut pas être transformé en ficelle, donc pas de chance là-bas.
Y at-il une façon plus concise de le faire (sans utiliser nullables, en passant?)
Merci!
Oh. Duh. Aaand c'est ce que stackoverflow est pour. Merci! – bwerks