que tienen principalmente un fondo ++ C y estoy aprendiendo C#. Entonces, necesito ayuda con los modismos y el estilo de C#.¿Definir enumeraciones dentro de un método en C#?
Estoy tratando de escribir, en C#, un pequeño archivo de texto método de análisis en el que necesito una variable de estado simple con tres estados. En C++ los anunciara un enum
así por la variable de estado:
enum { stHeader, stBody, stFooter} state = stBody;
... y luego usarlo en mi análisis de bucle de esta manera:
if (state == stHeader && input == ".endheader")
{
state = stBody;
}
en C# Me di cuenta de que no es posible declarar enum
dentro de un método. Entonces, ¿qué se supone que debo hacer por el estilo limpio? Declare este interno enum
fuera del método? Usa números mágicos 1,2,3? Crear una clase separada para esto?
Por favor me ayuda a despejar mi confusión.
Tal vez me falta algo, pero lo que es el punto de una enumeración si se usa en un solo método? – Doggett
@Dogget - dar nombres legibles a los estados. De lo contrario, tendría que escribir if (estado == 2 && input == ".endheader") state = 1; – danatel
Autoanotación de estado, etc. Es una práctica muy común en C, es decir, en el ejemplo dado: tener el estado como algo más significativo que un int. final lo hará con menos frecuencia en C# Tengo que decir - en primer lugar, ya que tienden a romper los métodos en componentes más pequeños, objetos, etc, en lugar de C, que es mucho más orientado imprescindible. O C++ cuando se usa de forma similar a C para ese asunto. – Mania