參考
List<object> list = new List<object>();
list.Add((int)42);
list.Add((short)42);
list.Add((float)42.1);
list.Add((double)42.1);
list.Add((decimal)42.1);
foreach (object valObj in list)
{
Type objType = valObj.GetType();
double value;
if (objType == typeof(int)) { value = (double)(int)valObj; }
else if (objType == typeof(short)) { value = (double)(short)valObj; }
else if (objType == typeof(float)) { value = (double)(float)valObj; }
else if (objType == typeof(double)) { value = (double)valObj; }
else if (objType == typeof(decimal)) { value = (double)(decimal)valObj; }
else throw new Exception("Unexpected type");
Console.WriteLine("Value: " + value);
}
List<object> list = new List<object>();
list.Add((int)42);
list.Add((short)42);
list.Add((float)42.1);
list.Add((double)42.1);
list.Add((decimal)42.1);
foreach (object valObj in list)
{
double value = (double)valObj; // <--- exception of type 'System.InvalidCastException'
Console.WriteLine("Value: " + value);
} |