2017-10-10 113 views
2

我试图在.NET 4.5.2应用程序中使用'out参数',但出现编译错误。在调用方法时放置“out type”声明

问题: 在哪个框架可以编译? 这是叫什么? out方法调用中的内联变量声明?

您能否提供一个参考?

编号:https://www.dotnetperls.com/parse

新出的语法:我们可以直接放在了 “OUT INT” 关键字 方法调用中。老版本的C#不允许使用这种语法。但是这个 可以减少程序的行数。

static void Main() 
{ 
    const string value = "345"; 
    // We can place the "out int" declaration in the method call. 
    if (int.TryParse(value, out int result)) 
    { 
     Console.WriteLine(result + 1); 
    } 
} 

回答

4

这需要C# version 7附带的Visual Studio 2017年

该功能被称为 “走出变量”。

在C#7.0中我们添加了变量;的能力,在其被作为out参数传递的点声明一个 变量右:

public void PrintCoordinates(Point p) 
{ 
    p.GetCoordinates(out int x, out int y); 
    WriteLine($"({x}, {y})"); } 
} 

更多文档可以发现here

+0

它被称为:'** inline ** out variables'。 – Odrai

+1

@Odrai [C#7语言草稿](https://www.ecma-international.org/activities/Languages/C%20sharp%20Standard%20WD3.16.pdf)不同意。见第119页,第3段。另外[this](https://docs.microsoft.com/en-us/dotnet/csharp/whats-new/csharp-7#out-variables)。并不是确切的名字是非常重要的。 –

+1

感谢您的链接和信息。我通常使用关键字'inline'来澄清'正常'/'旧'out声明和使用内联声明之间的区别。它更像是下面一行的缩写:“你可以声明* inline * out值作为它们被使用的方法的参数。” – Odrai