c语言 # ##如何使用_如何在C#中使用ValueTuples

c语言 # ##如何使用

元组是一种数据结构,包含固定大小的不可变,异构元素的有序有限序列。 当我们说元组中的元素是不可变的时,我们的意思是它们与无法更改的特定类型有关。

ValueTuple是C#7.0中引入的结构。 ValueTuple克服了元组的两个主要限制-即它们效率低下并且必须将它们引用为Item1,Item2等。也就是说,ValueTuples既具有性能,又可以由程序员选择的名称进行引用。 本文讨论了ValueTuples是什么以及如何在C#中使用它们。

[ 同样在InfoWorld上:如何在ASP.NET Web API中记录请求和响应元数据 ]

若要使用本文提供的代码示例,您应该在系统中安装Visual Studio 2019。 如果您还没有副本,则可以在此处下载Visual Studio 2019

在Visual Studio中创建控制台应用程序项目

首先,让我们在Visual Studio中创建一个.NET Core Console Application项目。 假设系统中已安装Visual Studio 2019,请按照以下概述的步骤在Visual Studio 2019中创建新的.NET Core控制台应用程序项目。

  1. 启动Visual Studio IDE。
  2. 点击“创建新项目”。
  3. 在“创建新项目”窗口中,从显示的模板列表中选择“控制台应用程序(.NET Core)”。
  4. 点击下一步。
  5. 在接下来显示的“配置新项目”窗口中,指定新项目的名称和位置。
  6. 单击创建。

这将在Visual Studio 2019中创建一个新的.NET Core控制台应用程序项目。在本文的后续部分中,我们将使用该项目与ValueTuples一起使用。

C#中的ValueTuple vs.Tuple

ValueTuple提供了一种轻量级类型,可用于从一个方法返回多个值。 与作为引用类型的元组不同,ValueTuple是具有优化语法和强大命名约定的值类型。 也不同于Tuple,ValueTuple中的字段是可变的。 结果,ValueTuple的性能远远优于Tuple。

并且,虽然元组中的属性是只读的(即,一旦创建它们就无法更改它们的值),但在创建后就可以更改ValueTuple中的属性。

安装System.ValueTuple NuGet软件包

在Visual Studio中创建控制台应用程序后,下一步应该安装必要的NuGet程序包。 您还可以从Visual Studio 2019 IDE中的NuGet程序包管理器安装System.ValueTuple程序包,或者可以输入以下命令通过.NET CLI安装此程序包。

dotnet add package System.ValueTuple

请注意,ValueTuple是.NET Framework 4.7的一部分。

[ 也在InfoWorld上:最佳的软件开发,云计算,数据分析和机器学习产品 ]

在C#中创建ValueTuple

您可以通过多种方式创建ValueTuple。 其中包括:

  • 使用构造函数
  • 使用创建方法
  • 使用括号, ()

以下代码段说明了如何使用其构造函数创建ValueTuple。

ValueTuple<int, string, string> valueTuple =
new ValueTuple<int, string, string>(1, "Joydip", "Kanjilal");

您也可以使用Create方法创建ValueTuple。 以下代码段说明了如何实现此目的。

var valueTuple = ValueTuple.Create(1, "Joydip", "Kanjilal");

您可以在右侧为ValueTuple分配成员名称和相应的值,如下所示。

var author = (Id: 1, FirstName: "Joydip", LastName: "Kanjilal");

最后,您还可以使用括号创建和初始化ValueTuple。 以下代码段利用括号创建和初始化ValueTuple。

(int Id, string FirstName, string LastName) author = (1, "Joydip", "Kanjilal");

在C#中的ValueTuple中使用命名属性

ValueTuple还支持命名属性。 也就是说,您可以为ValueTuple的属性分配有意义的名称,而不是默认属性名称Item1,Item2,Item3等。 下面的代码段说明了如何为ValueTuple的属性分配名称。

(int Id, string FirstName, string LastName) author = (1, "Joydip", "Kanjilal");

从C#中的方法返回ValueType

与元组一样,您可以利用ValueTuple从方法中返回多个值。 以下代码段说明了如何从方法返回ValueTuple。

static (int, string, string) GetAuthor()
{
    return (Id: 1, FirstName: "Joydip", LastName: "Kanjilal");
}

在C#中使用解构从ValueTuple中检索单个成员

您可以利用解构方法从ValueTuple中检索单个成员。 以下代码片段显示了如何完成此操作。

(int Id, string FirstName, string LastName) = GetAuthor();

注意,上一节中给出了GetAuthor方法。

[ 通过InfoWorld的App Dev Report新闻通讯了解软件开发中的热门话题 ]

最后,我指出可以使用System.Tuple和System.ValueTuple中的扩展方法将Tuple转换为ValueTuple,反之亦然。 下面的代码片段显示了如何将ValueTuple转换为Tuple。

var valueTuple = ValueTuple.Create(1, "Joydip", "Kanjilal");
var tuple = valueTuple.ToTuple();

ValueTuples提供比Tuples更简单的语法和更好的性能,并具有能够更改其数据成员并为其分配有意义的名称的优点。 简而言之,使用ValueTuples代替Tuples有很多充分的理由。

翻译自: https://www.infoworld.com/article/3528752/how-to-use-valuetuples-in-csharp.html

c语言 # ##如何使用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值