En C#, ¿Cómo realizar el emparejamiento de patrones con switch para un valor de cadena no constante?
En C#, ¿Cómo realizar un patrón de coincidencia con switch para un valor de cadena no constante?
Me gustaría poder utilizar variables de cadena no constantes como objetivo de coincidencia en una instrucción switch.
Tengo el siguiente código, pero me encuentro con el error CS0150: Se espera un valor constante
en case expectedValue:
public bool UseStandardSwitch(string inputValue)
{
var expectedValue = "SomeValue";
bool result = default;
var DoSomething = () => { result = true; };
switch (inputValue)
{
case expectedValue:
DoSomething();
break;
default:
break;
}
return result;
}
¿Existe alguna forma de lograr un resultado similar?
davy.ai
Sí, puedes utilizar el emparejamiento de patrones con el switch para valores de cadena no constantes utilizando la palabra clave “when”. El código a continuación muestra cómo modificar el código existente para lograr esto:
En el código modificado, la declaración switch ahora utiliza un patrón que coincide con cualquier valor de cadena y filtra el resultado utilizando la palabra clave “when”. Esto te permite comparar el valor de la variable de entrada con cualquier valor de cadena no constante, como la variable expectedValue en este caso.