Ond*_*cik 8 c# .net-core c#-7.0
使用C#7新的Tuple特性,我们应该能够通过它从类型派生的名称来访问字段.
public (double lat, double lng) GetLatLng(string address) { ... }
var ll = GetLatLng("some address");
Console.WriteLine($"Lat: {ll.lat}, Long: {ll.lng}");
Run Code Online (Sandbox Code Playgroud)
这在.NET Core中是不可能的.为什么?- > 仅适用于Item1; 项目2.不是.lat .lng.
谢谢
UPDATE
添加System.ValueTuple软件包后,Visual Studio 2017 Intellisense可能很慢更新自身,即使没有编译错误,也会继续显示错误波形.编译项目虽然表明命名元组正在工作.快速解决方法是重新打开源文件或解决方案.
原版的
错误消息说明了"预定义类型" System.ValueTuple'2 is not defined or imported.您需要从NuGet 添加System.ValueTuple包才能使用命名元组.
添加包后,代码将编译:
class Program
{
static (double lat, double lng) GetLatLng(string address)
{
return (1, 1);
}
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
var ll = GetLatLng("some address");
Console.WriteLine($"Lat: {ll.lat}, Long: {ll.lng}");
}
}
Run Code Online (Sandbox Code Playgroud)
Scott Hanselman演示了如何通过启用设置来配置Visual Studio 2017以自动建议缺少类型的NuGet包Options > Text Editor > C# > Advanced > Using Directives.
启用该Suggest usings for types in NuGet packages设置后,缺少元组的"快速修复"菜单显示Install package 'System.ValueTuple':
该Find this type on nuget.org菜单是一个类似ReSharper的功能
| 归档时间: |
|
| 查看次数: |
6919 次 |
| 最近记录: |