gpt4 book ai didi

.NET Core 中的 C# 7 元组和名称

转载 作者:太空狗 更新时间:2023-10-29 20:19:33 25 4
gpt4 key购买 nike

借助 C# 7 的新元组功能,我们应该能够通过从类型派生的名称访问字段。

public (double lat, double lng) GetLatLng(string address) { ... }

var ll = GetLatLng("some address");
Console.WriteLine($"Lat: {ll.lat}, Long: {ll.lng}");

这在 .NET Core 中是不可能的。为什么? -> 仅适用于 Item1;项目2。不适用于 .lat .lng。

谢谢

最佳答案

更新

Visual Studio 2017 Intellisense 在添加 System.ValueTuple 包后更新自身可能会很慢,并且即使没有编译错误也会继续显示错误波浪线。编译项目虽然显示命名元组正在工作。快速解决方法是重新打开源文件或解决方案。

原创

错误消息说明“预定义类型 System.ValueTuple'2 未定义或导入”。您需要添加 System.ValueTuple来自 NuGet 的包,以便使用命名元组。

添加包后,代码编译:

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}");
}
}

Scott Hanselman shows如何配置 Visual Studio 2017 以通过启用 Options > Text Editor > C# > Advanced > Using Directives 中的设置自动建议缺失类型的 NuGet 包。

启用 Suggest usings for types in NuGet packages 设置后,缺少元组的快速修复菜单显示 Install package 'System.ValueTuple' :

Install missing package

Find this type on nuget.org 菜单是一个类似的 ReSharper 功能

关于.NET Core 中的 C# 7 元组和名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43842664/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com