O que há de novo no C# 7.0 - Variáveis Out
Até o C# 6.0, chamar um método que utiliza parâmetros out não é tão fluido, pois você precisa declarar as variáveis antes de chamar o método, e nem é possível usar o var já que normalmente não se inicializa variáveis que são argumentos do método out.
Então você precisa verificar quais os tipos das variaveis utilizadas nos parametros out, voltar e declarar antes do método:
public void OutVariablesExample60()
{
int myX;//var myX doesn't work
int myY;
if(MethodOut(out myX, out myY))
{
Console.WriteLine(myX);
}
}
No C# 7.0 esta experiência será melhorada, ao chamar o método você pode declarar as variáveis de forma inline. Com isso o compilador sabe os tipos delas, permitindo inclusive o uso do var:
public void OutVariablesExample70()
{
if (MethodOut(out int myX, out var myY))
{
Console.WriteLine(myX);
}
}
As variáveis declaradas estarão no escopo do bloco onde o método é chamado. No Preview 4 o compilador ainda restinge o escopo para o statement onde a variável foi declarada, por isso só funciona como no exemplo acima, onde temos um bloco IF. Esta restrição será removida até a versão final.
Sempre que novas funcionalidades são acrescentadas acho interessante verificar como o código IL é gerado para saber como foi feita a implementação. Neste caso é bem simples, o novo código gera uma versão identica ao exemplo em C# 6.0.