新元组语法在C#version 7中不起作用
我已经开始在VisualStudioEnterprise15Preview 2中尝试C#7的新功能。我能够运行其他即将出现的特性的代码,如二进制文本、数字分隔符等。但是元组初始化的新语法不起作用 以下是我的代码片段:新元组语法在C#version 7中不起作用,c#,visual-studio,c#-7.0,C#,Visual Studio,C# 7.0,我已经开始在VisualStudioEnterprise15Preview 2中尝试C#7的新功能。我能够运行其他即将出现的特性的代码,如二进制文本、数字分隔符等。但是元组初始化的新语法不起作用 以下是我的代码片段: var latLong = new (double lat, double lng) { lat = 0, lng = 0 }; var result = (5, 20); var result = (count: 5, sum: 20); 我遵循了博客中提到的所有步骤。如果其他
var latLong = new (double lat, double lng) { lat = 0, lng = 0 };
var result = (5, 20);
var result = (count: 5, sum: 20);
我遵循了博客中提到的所有步骤。如果其他人也遇到过这个问题,就发布这个问题。上述代码导致编译失败,如下所示:
1>Program.cs(18,26,18,27):错误CS1031:应为类型
1> Program.cs(18,27,18,33):错误CS1525:无效的表达式项“double”
1> cs(18,34,18,37):错误CS1003:语法错误,,,应为
1> Program.cs(18,39,18,45):错误CS1525:无效的表达式项“double”
1> cs(18,46,18,49):错误CS1003:语法错误,,,应为
我从另一个链接中找到了答案。如果你仔细阅读评论部分,很明显,并不是所有即将推出的新功能都能在最新发布的VS15版本中发布。Tuple(具有新声明语法的值类型)就是这样一个特性
在所有功能真正开始工作之前,我们可能必须等待RTM构建,或者另一种方法是从其gitHub存储库获取roslyn的最新源代码,在您自己的机器上克隆,编译并使您的Visual Studio 15 Preview 2安装使用它。您获取的最新提交越多,您可以使用的功能就越多。您可以通过以下方式对其进行初始化:
void Main()
{
var latLong = (lat:0, lng:0);
var result1 = (5, 20);
var result2 = (count: 5, sum: 20);
}
要尝试它,您可以使用fiddle(此答案底部的链接),也可以脱机使用,两者都已经支持C#7了。
要查看结果,请添加
latLong.Dump(); result1.Dump(); result2.Dump();
请参见上面的示例。所有3个声明都创建为ValueTuple
。要创建其他数据类型,需要将其指定为显式类型转换,例如
var latLong = (lat:(double)0.5, lng:(double)0);
将创建一个ValueTuple
。要分解元组,请使用
var (lat, lng) = latLong;
这将创建并分配两个变量lat
和lng
。要了解更多C#7功能,请查看