C #?: Bedingter Operator

Ich habe diesen Auszug aus C # 2.0-Quellcode:

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

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

Die erste Ergebnisauswertung wirft einInvalidCastException während der zweite nicht. Was ist der Unterschied zwischen diesen beiden?

Antworten auf die Frage(8)

Ihre Antwort auf die Frage