C#关键字扫盲——Tuple(元组类) 、ValueTuple(值元组)
原文:C#关键字扫盲——Tuple(元组类) 、ValueTuple(值元组)
版权声明:本文为博主原创文章,随意转载。 https://blog.csdn.net/Michel4Liu/article/details/79750877
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# 7.0已经出来一段时间了,大家都知道新特性里面有个对元组的优化,并且网上也有大量的介绍,这里利用详尽的例子详解Tuple VS ValueTuple(元组类VS值元组),10分钟让你更了解Val ...
- Tuple元组 、 ValueTuple 值元组详解
Tuple元组 Tuple是C# 4.0时出的新特性,.Net Framework 4.0以上版本可用. 元组是一种数据结构,具有特定数量和元素序列,与数组不同,元祖中的元素可以不同的数据类型.比如设 ...
- C# 元组和值元组
C# 7.0已经出来一段时间了,大家都知道新特性里面有个对元组的优化:ValueTuple.这里利用详尽的例子详解Tuple VS ValueTuple(元组类VS值元组),10分钟让你更了解Valu ...
- [译]C# 7系列,Part 1: Value Tuples 值元组
Mark Zhou写了很不错的一系列介绍C# 7的文章,虽然是2年多年前发布的,不过对于不熟悉C# 7特性的同学来说,仍然有很高的阅读价值. 原文:https://blogs.msdn.microso ...
- C# 9.0元组 (ValueTuple)详细解说
元组 (ValueTuple)类型是值类型:元组元素是公共字段,可以使用任意数量的元素定义元组.Tuple类型像一个口袋,在出门前可以把所需的任何东西一股脑地放在里面.您可以将钥匙.驾驶证.便笺簿和钢 ...
- 窥探Swift之新添数据类型元组与可选值
今天的博客中就总结一下关于Swift中相对Objc新添加的两个数据类型:元组(Tuple)和可选值类型(Optional).上面这两个类型是Swift独有的类型,使用起来也是非常方便的,今天就通过一些 ...
- C# 7.0 新特性1: 基于Tuple的“多”返回值方法
本文基于Roslyn项目中的Issue:#347 展开讨论. 1. C# 7.0 新特性1: 基于Tuple的“多”返回值方法 2. C# 7.0 新特性2: 本地方法 3. C# 7.0 新特性3: ...
- S(tuple)类及可选(Optional)类型型
元组将多个值组合为单个值.元组内的值可以是任意 类型,各元素不必是相同的类型.元组在作为函数返 回值时尤其有用. 1.定义方法1 let http404Error= (404,"Not Fo ...
- static 和 final 关键字 对实例变量赋初始值的影响
static 和 final 关键字 对实例变量赋初始值的影响 最近一直在看<深入理解Java虚拟机>,在看完了对象内存分配.Class文件格式之后,想深扒一下实例变量是如何被赋上初始值的 ...
随机推荐
- C# Aspose.Words 数据写入到word,模板样式复杂(转换指定内容并返回多张图片)
public ResultResponse<string[]> PrintStudyRecords([FromBody]StudyInfo info) { ResultResponse&l ...
- Mysql 事务相关
MySQL介绍 什么是MySQL? MySQL 是一种关系型数据库,在Java企业级开发中非常常用,因为 MySQL 是开源免费的,并且方便扩展.阿里巴巴数据库系统也大量用到了 MySQL,因此它 ...
- (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape 错误
使用网页版jupyder在读取桌面文件时,刚开始我的代码是: baseball = pd.read_csv('C:\Users\TuZhiqiang\Desktop\result.csv')print ...
- 重学JavaScript - 映射与集合
作者:狐狸家的鱼 GitHub:surRimn 整理自MDN文档 带键的集合 映射 Map对象 一个Map对象在迭代时会根据对象中元素的插入顺序来进行 — 一个 for...of 循环在每次迭代后会返 ...
- JavaSE---类、对象、成员变量、局部变量
1.概述 1.1 类 1.1.1 类 是一种 自定义的 引用 数据类型: 1.2 对象 1.2.1 创建对象的根本途径:构造器: 通过new关键字 来调用 某个类的构造器: packa ...
- 观察者模式Observer
原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/11409319.html 1. 定义定义对象间的一种一对多的依赖关系.当一个对象的状态发生改变时,所有依 ...
- oracle 查看所有表的数据量并排序
select t.table_name,t.num_rows from user_tables t ORDER BY NUM_ROWS DESC; 还可以直接查看dblink的:select t.ta ...
- delphi 随意将函数执行权限提高到Ring0源代码
//随意将函数执行权限提高到Ring0源代码//Windows 2K以上的操作系统,//用途: 提供超级简单使用的APIrocessRing0(),//可将delphi中的任意函数由原來的Ring3权 ...
- nodejs在Windows 7上的搭建
一.安装nodejs 去官网下载https://nodejs.org/download/,我选择下载node-v9.3.0-x64.msi ,最新版本, 安装路径放在了D盘,因为C盘的空间不够了,直接 ...
- css使子元素在父元素居中的各种方法
html结构: <div class="parent"> <div class="child"></div> </di ...