Me preguntaba por qué se controlan algunos modelos en C# en tiempo de compilación, mientras que en otros casos la responsabilidad recae en CLR. Al igual que arriba, ambos son incorrectos pero se manejan de una manera diferente.Recopilación en tiempo de ejecución y en tiempo de ejecución C#
class Base { }
class Derived : Base { }
class Other { }
static void Main(string[] args)
{
Derived d = (Derived)new Base(); //Runtime InvalidCastException
Derived d = (Derived)new Other(); //Compile-time Cannot convert type...
}
Mientras lee "C# en profundidad" que he encontrado la información sobre este tema en el autor dice:
"Si las manchas del compilador que en realidad es imposible que ese elenco de trabajar, que va desencadenar un error de compilación, y si está teóricamente permitido pero realmente incorrecto en el momento de la ejecución, el CLR emitirá una excepción ".
¿El término 'teóricamente' Mean conectado por jerarquía de herencia (y otros otra afinidad entre objetos?) O es un negocio interno del compilador?
Una gran pregunta. Espero que alguien más iluminado que yo me proporcione una explicación. –