Considere el siguiente código:¿Hay alguna manera de que el compilador C# muestre advertencias cuando una instrucción switch tiene casos no controlados?
private enum myEnum
{
A,
B
}
private void myMethod(myEnum m)
{
switch (m)
{
case myEnum.A:
//do stuff
break;
case myEnum.B:
//do stuff
break;
default:
throw new NotImplementedException(m.ToString());
}
}
Si alguna vez añadir un tercer miembro de C a MyEnum, sólo será advertido en tiempo de ejecución por un NotImplementedException
Lo que me gustaría hacer es tener el compilador avisarme cuando hay un interruptor con casos no manejados y no predeterminado: caso.
¿Hay alguna manera de hacer eso u otra solución a este problema, el objetivo final es ser advertido en tiempo de compilación de que falta algo?
Eso es un buen punto. Pero en mi situación, no creo que se aplique (llevaría a clases casi vacías, que contienen una lógica que no es de su responsabilidad.Normalmente, tengo algunos DataContracts que contienen un miembro enumerado, y mi GUI enciende esos miembros para ver cómo formatearlos). – Brann
Un buen patrón, pero úselo con cuidado. Si su enumeración es grande y su interruptor solo necesita manejar algunos casos, probablemente no desee crear un trillón de clases. –
+1 para la edición. =) –