Um novo recurso do C # 6.0 permite declarar variáveis dentro do método TryParse. Eu tenho algum código:
string s = "Hello";
if (int.TryParse(s, out var result))
{
}
Mas recebo erros de compilação:
O que estou fazendo errado? PS: nas configurações do projeto estão definidos C # 6.0 e .NET framework 4.6.
Acabei de descobrir por acidente, no vs2017, você pode fazer isso por brevidade:
fonte
Esse é um novo recurso do C # 7, que é um recurso muito bom frequentemente usado em conjunto com a correspondência de padrões. Esse recurso, e muitos mais, são anunciados no blog da equipe do C # Novidades no C # 7.0 .
O que a equipe tenta alcançar aqui é um código mais fluido. Você se lembra de alguns casos em que a lista de variáveis externas está ficando extremamente longa e sem uso? Apenas um exemplo rápido:
Vê o problema? É inútil ter todas essas variáveis de fora sentadas sem fazer nada. O número de linhas pode ser cortado pela metade usando C # 7:
Não apenas o número de linhas é minimizado, mas também não há uma lista desnecessária de variáveis no escopo onde você não deseja tê-las. Isso evita que você use uma variável que não pretendia usar, mas que agora está visível para você.
Esse recurso também é útil com correspondência de padrões em
switch
instruções, como neste código (que tem um comportamento diferente do código acima!):fonte