¿Por qué en una instrucción de cambio C#, para una variable utilizada en varios casos, solo la declara en el primer caso?Declaración de variables en una instrucción de cambio C#
Por ejemplo, lo siguiente arroja el error "Una variable local llamada 'variable' ya está definida en este ámbito".
switch (Type)
{
case Type.A:
string variable = "x";
break;
case Type.B:
string variable = "y";
break;
}
Sin embargo, por la lógica, la declaración inicial no debe ser golpeado si el tipo es Type.B
. ¿Existen todas las variables dentro de una instrucción switch en un único ámbito, y se crean/asignan antes de procesar cualquier lógica?
las cosas realmente feas es que la gente hace esto: 'interruptor (Tipo) {case Tipo.A: cadena variable = "x"; descanso; case Type.B: variable = "y"; descanso; } ' – giammin
@giammin: Por favor, elabore. – zazkapulsk
@zazkapulsk primero debe declarar una variable y luego usarla en el interruptor: 'string variable = null; switch (Tipo) {case Type.A: variable = "x"; descanso; case Type.B: variable = "y"; descanso; } ' – giammin