Una nueva característica en C # 6.0 permite declarar variables dentro del método TryParse. Tengo un código:
string s = "Hello";
if (int.TryParse(s, out var result))
{
}
Pero recibo errores de compilación:
¿Que estoy haciendo mal? PD: en la configuración del proyecto se establecen C # 6.0 y .NET framework 4.6.
Me enteré por accidente, en vs2017, puede hacer esto por brevedad:
fuente
Esa es una nueva característica de C # 7, que es una característica muy agradable que se usa a menudo junto con la coincidencia de patrones. Esta característica, y muchas más, se anuncian en el blog del equipo de C # Novedades de C # 7.0 .
Lo que el equipo intenta lograr aquí es un código más fluido. ¿Recuerda algunos casos en los que la lista de variables de salida se está volviendo extremadamente larga sin uso? Solo un ejemplo rápido:
¿Ves el problema? Es inútil tener todas esas variables ahí sentadas sin hacer nada. El número de líneas se puede reducir a la mitad usando C # 7:
No solo se minimiza el número de líneas, tampoco hay una lista innecesaria de variables en el alcance donde no desea tenerlas. Esto le impide utilizar una variable que no tenía la intención de utilizar, pero que ahora está visible.
Esta característica también es útil con la coincidencia de patrones en
switch
declaraciones, como en este código (¡que tiene un comportamiento diferente al código anterior!):fuente