Programar contra um enum em uma instrução switch, é esse o seu caminh
Veja o trecho de código:
Isto é o que normalmente faço quando codifico contra um enum. Eu tenho uma fuga padrão com uma InvalidOperationException (não uso ArgumentException ou uma de suas derivadas porque a codificação é contra um campo de instância privada e não um parâmetro de entrada
Eu queria saber se vocês colegas desenvolvedores também estão codificando com essa fuga em mente ....
public enum DrivingState {Neutral, Drive, Parking, Reverse};
public class MyHelper
{
private DrivingState drivingState = DrivingState.Neutral;
public void Run()
{
switch (this.drivingState)
{
case DrivingState.Neutral:
DoNeutral();
break;
case DrivingState.Drive:
DoDrive();
break;
case DrivingState.Parking:
DoPark();
break;
case DrivingState.Reverse:
DoReverse();
break;
default:
throw new InvalidOperationException(
string.Format(CultureInfo.CurrentCulture,
"Drivestate {0} is an unknown state", this.drivingState));
}
}
}
Nas revisões de código, encontro muitas implementações com apenas uma declaração de quebra no escape padrão. Pode ser um problema ao longo do tempo ....