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?