El objetivo de un reparto explícito es decir que "me hago cargo del problema, simplemente hazlo".
En su caso trivial, tal vez sería fácil para el compilador descubrir que el valor no cabría en un Int32, y así producir su advertencia.
Sin embargo, ¿qué pasa con esto:
Int64 x = CallSomeMethod();
Int32 y = (Int32)x;
¿Cómo puede advertirle sobre esto? ¿Debería:
- intentar averiguar qué tipo de rango podría devolver el valor de CallSomeMethod?
- siempre advierten? (Entonces, ¿cuál sería el punto?)
Lo mejor que puede esperar aquí es tener una verificación de tiempo de ejecución, o similar, el compilador no puede evitar que todo lo que podría salir mal.
¿No es el hecho de que tiene que usar una advertencia de conversión explícita suficiente al escribir el código?El reparto explícito generalmente le dice al compilador "Oye, sé lo que estoy haciendo". – Joey
Tenemos un código que está haciendo algunos moldes explícitos que causan la pérdida de datos. Necesitamos limpiarlo. Tenía la esperanza de que hubiera una opción de compilación que pudiéramos configurar que pudiera ayudarnos a encontrar estos casos. C++ tiene una advertencia para esto; Pensé que C# podría tener algo. – HBFan