Sembra che ci sia del tipo di confusione nell'operatore ternario. So che questo è stato risolto in altri thread SO, ma è sempre stato con nullable. Inoltre, per il mio caso sto solo cercando un modo migliore.Utilizzo conciso di DBNull? (Ternario?)
mi piacerebbe essere in grado di utilizzare
proc.Parameters[PARAM_ID].Value =
string.IsNullOrEmpty(dest.Id) ? DBNull.Value : dest.Id;
ma invece mi sono bloccato con questo:
if (string.IsNullOrEmpty(dest.Id))
{
proc.Parameters[PARAM_ID].Value = DBNull.Value;
}
else
{
proc.Parameters[PARAM_ID].Value = dest.Id;
}
L'operatore ternario fallisce perché non c'è alcuna conversione possibile tra DBNull e la stringa, e per quanto sciocco possa sembrare che Value sia un oggetto, il compilatore me lo restituisce e io sono costretto a preoccuparmi. La risposta alla versione nullable di questa domanda è quella di eseguire il cast null alla stringa e di eseguirla; DBNull non può essere lanciato su una stringa, quindi non ci sono fortuna.
Esiste un modo più conciso per fare questo (senza l'utilizzo di nullables, a proposito?)
Grazie!
Oh. Duh. Aa e questo è ciò che lo stackoverflow è per. Grazie! – bwerks