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