Wpadłem dzisiaj na problem i nie byłem do końca pewien, dlaczego to nie zadziała.Rodzaj obiektu Cast w C#
Poniższy przykładowy kod padnie:
static void Main(string[] args)
{
int i32 = 10;
object obj = i32;
long i64 = (long)obj;
}
To spowoduje InvalidCastException. Dlaczego to nie działa? Czy C# nie jest wystarczająco inteligentny, aby wiedzieć, że obiekt jest rzeczywiście typu int?
Już wymyśliłem obejście, ale jestem ciekawy, dlaczego powyższy przykładowy kod nie zadziałał w pierwszej kolejności.
Dzięki Tim
Zauważam, że jest to duplikat wielu poprzednich pytań, w tym ostatnio http://stackoverflow.com/questions/3911293 –