Me encontré con un problema hoy y no estaba del todo seguro de por qué no funcionaría.Tipo de objeto de fundición en C#
El siguiente ejemplo de código se colgará:
static void Main(string[] args)
{
int i32 = 10;
object obj = i32;
long i64 = (long)obj;
}
Esto dará lugar a un InvalidCastException. ¿Por qué esto no funciona? ¿C# no es lo suficientemente inteligente como para saber que el objeto es en realidad de tipo int?
Ya he encontrado una solución alternativa, pero tengo curiosidad de por qué el ejemplo de código anterior no funcionó en primer lugar.
Gracias, Tim
Observo que este es un duplicado de muchas preguntas anteriores, incluyendo la más reciente http://stackoverflow.com/questions/3911293 –