C #?: Условный оператор

У меня есть этот фрагмент исходного кода C # 2.0:

object valueFromDatabase;
decimal result;
valueFromDatabase = DBNull.Value;

result = (decimal)(valueFromDatabase != DBNull.Value ? valueFromDatabase : 0);
result = (valueFromDatabase != DBNull.Value ? (decimal)valueFromDatabase : (decimal)0);

Первый результат оценки бросаетInvalidCastException в то время как второй нет. В чем разница между этими двумя?

Ответы на вопрос(8)

Ваш ответ на вопрос