C#关键字扫盲——Tuple(元组类) 、ValueTuple(值元组)

Tuple、ValueTuple

当方法返回值大于一个时我们有时用out或结构体或类来处理,今天介绍一个简便的多返回值方式。
ValueTuple 是 Tuple的扩展,本文只针对最新的ValueTuple 做讲解,Tuple有很多不便之处,总之过时的就让他过去吧。

Tuple ValueTuple
.Net Framework 4.0 内置 Nuget 安装System.ValueType 和 Net4.7内置
是一个类 是一个结构

项目源码地址:https://gitee.com/michel4liu/LearnCSharp.git
项目:LearnTuple
环境VS2017 .NET Core2.0


一、ValueTuple基本用法

1、接收值可用Item表示,可以识别类型.
2、接收时改别名,相当于直接声明三个变量接受对应值
3、ValueTuple可以简写
C#关键字扫盲——Tuple(元组类) 、ValueTuple(值元组)_第1张图片

二、ValueTuple 返回值加别名 最简单明了的用法。

C#关键字扫盲——Tuple(元组类) 、ValueTuple(值元组)_第2张图片

三、解构ValueTuple 返回值中只想要部分

不想要的参数可以用 “_” 下划线代替,下图中只接受y值
C#关键字扫盲——Tuple(元组类) 、ValueTuple(值元组)_第3张图片

四、创建ValueTuple

C#关键字扫盲——Tuple(元组类) 、ValueTuple(值元组)_第4张图片

五、刚看完就在真实项目中用到

C#关键字扫盲——Tuple(元组类) 、ValueTuple(值元组)_第5张图片

C#关键字扫盲——Tuple(元组类) 、ValueTuple(值元组)_第6张图片

六、下面链接的文章写的是编译后的ValueTuple 工作内容。貌似所有的简写都是编译器的功劳

https://www.cnblogs.com/linianhui/p/csharp7_tuple.html


注意点

1、ValueTuple最多支持8个返回值,可以在第8个上嵌套ValueTuple,但是如果系统真的需要这么多返回值是不是该考虑封装成类传递更好些。微软建议超过64字节不要用结构。

你可能感兴趣的:(C#)