¿Por qué el compilador de MS C# se queja de que "no todas las rutas de códigos devuelven un valor" en el siguiente escenario?¿Error del compilador C# ?: No detecta métodos que siempre arrojan excepciones
public int Foo(bool flag)
{
if(flag)
{
return 1;
}
else
{
ThrowException(); // this method always throws an exception
// return -1; // why do I need to add this code that will never be called?
}
}
Gracias!
Absolutamente correcto. Pero para aclarar el punto OP, si cambia el método ThrowException() para devolver una excepción y cambie el código a: throw ThrowException(), se comportaría como el OP deseado. –
Bueno, VS 2008 tiene análisis de código estático, de lo contrario no generaría este error. – Chris
@Kirk: No entiendo por qué. Ni siquiera me da el punto de tener un método que siempre arroje una excepción. Aunque creo que esto es más una cuestión teórica. –