Сегодня у меня возникла проблема, и я не совсем понял, почему это не сработает.
Следующий пример кода приведет к сбою:
static void Main(string[] args)
{
int i32 = 10;
object obj = i32;
long i64 = (long)obj;
}
Это приведет к InvalidCastException. Почему это не работает? Разве C # недостаточно умен, чтобы знать, что объект действительно имеет тип int?
Я уже придумал обходной путь, но мне любопытно, почему приведенный выше пример кода вообще не работал.
Спасибо, Тим