Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

217
Visualizações
TryParse sin var param

Una nueva función en C# 6.0 permite declarar variables dentro del método TryParse. tengo algo de codigo:

 string s = "Hello"; if (int.TryParse(s, out var result)) { }

Pero recibo errores de compilación: ingrese la descripción de la imagen aquí

¿Que estoy haciendo mal? PD: en la configuración del proyecto se establecen C# 6.0 y .NET framework 4.6.

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

Una nueva función en C# 6.0 permite declarar variables dentro del método TryParse.

Las expresiones de declaración se eliminaron de C# 6.0 y no se incluyeron en la versión final. Actualmente no puedes hacer eso. Hay una propuesta para ello en GitHub para C# 7 (también vea esto para futuras referencias).

Actualización (07/03/2017)

Con el lanzamiento oficial de C#7, se compila el siguiente código:

 string s = "42"; if (int.TryParse(s, out var result)) { Console.WriteLine(result); }
over 4 years ago · Santiago Trujillo Relatório

0

Me acabo de enterar por accidente, en vs2017, puedes hacer esto por brevedad:

 if (!Int64.TryParse(id, out _)) { // error or whatever... }
over 4 years ago · Santiago Trujillo Relatório

0

Esa es una característica nueva de C# 7, que es una característica muy buena que se usa a menudo junto con la coincidencia de patrones. Esta función, 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 fuera se vuelve extremadamente larga sin ningún uso? Sólo un ejemplo rápido:

 int i; Guid g; DateTime d; if (int.TryParse(o, out i)) { /*use i*/ } else if (Guid.TryParse(o, out g)) { /*use g*/ } else if (DateTime.TryParse(o, out d)) { /*use d*/ }

¿Ves el problema? Es inútil tener todas esas variables fuera sentadas allí sin hacer nada. El número de líneas se puede reducir a la mitad usando C# 7:

 if (int.TryParse(o, out int i)) { /*use i*/ } else if (Guid.TryParse(o, out Guid g)) { /*use g*/ } else if (DateTime.TryParse(o, out DateTime d)) { /*use d*/ }

No solo se minimiza la cantidad de líneas, sino que tampoco hay una lista innecesaria de variables en el alcance donde no desea tenerlas. Esto le impide usar una variable que no pretendía usar, pero que ahora puede ver.

Esta característica también es útil con la coincidencia de patrones en declaraciones de switch , como en este código (¡que tiene un comportamiento diferente al código anterior!):

 switch (o) { case int i: { /*use i*/ break; } case Guid g: { /*use g*/ break; } case DateTime d: { /*use d*/ break; } }
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda