C#关键字扫盲——Tuple(元组类) ValueTuple(值元组)
Posted lonelyxmas
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#关键字扫盲——Tuple(元组类) ValueTuple(值元组)相关的知识,希望对你有一定的参考价值。
原文: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可以简写
二、ValueTuple 返回值加别名 最简单明了的用法。
三、解构ValueTuple 返回值中只想要部分
不想要的参数可以用 “_” 下划线代替,下图中只接受y值
四、创建ValueTuple
五、刚看完就在真实项目中用到
六、下面链接的文章写的是编译后的ValueTuple 工作内容。貌似所有的简写都是编译器的功劳
https://www.cnblogs.com/linianhui/p/csharp7_tuple.html
注意点
1、ValueTuple最多支持8个返回值,可以在第8个上嵌套ValueTuple,但是如果系统真的需要这么多返回值是不是该考虑封装成类传递更好些。微软建议超过64字节不要用结构。
以上是关于C#关键字扫盲——Tuple(元组类) ValueTuple(值元组)的主要内容,如果未能解决你的问题,请参考以下文章
详解C# Tuple VS ValueTuple(元组类 VS 值元组)
详解C# Tuple VS ValueTuple(元组类 VS 值元组)
详解C# Tuple VS ValueTuple(元组类 VS 值元组)