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字节不要用结构。

原文地址:https://www.cnblogs.com/lonelyxmas/p/11308258.html

时间: 2024-10-10 04:12:50

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

详解C# Tuple VS ValueTuple(元组类 VS 值元组)

C# 7.0已经出来一段时间了,大家都知道新特性里面有个对元组的优化:ValueTuple.这里利用详尽的例子详解Tuple VS ValueTuple(元组类VS值元组),10分钟让你更了解ValueTuple的好处和用法. 如果您对Tuple足够了解,可以直接跳过章节"回顾Tuple",直达章节"ValueTuple详解",查看值元组的炫丽用法. 回顾Tuple Tuple是C# 4.0时出的新特性,.Net Framework 4.0以上版本可用. 元组是一种

S(tuple)类及可选(Optional)类型型

元组将多个值组合为单个值.元组内的值可以是任意 类型,各元素不必是相同的类型.元组在作为函数返 回值时尤其有用. 1.定义方法1 let http404Error= (404,"Not Found") println("The status codeis \(http404Error.0)") // prints "The status codeis 404" println("The statusmessage is \(http40

窥探Swift之新添数据类型元组与可选值

今天的博客中就总结一下关于Swift中相对Objc新添加的两个数据类型:元组(Tuple)和可选值类型(Optional).上面这两个类型是Swift独有的类型,使用起来也是非常方便的,今天就通过一些示例来介绍一下如何初始化和使用元组和可选值类型以及使用元组和可选值类型的场景.废话少说,直奔主题,在今天的示例代码中仍然是使用Playground来测试的.左边是代码,右边是Playground中的结果. 一.Swift中的元组(Tuple) 元组类似于C语言中的结构体(Struct),用来存储一组

Python学习—常用时间类与命名元组

常用时间类与命名元组 1. 常用时间类date 日期类time 时间类datetimetimedelat 时间间隔2. 一些术语和约定的解释:1.时间戳(timestamp)的方式:通常来说,时间戳表示的是从1970年1月1日开始按秒计算的偏移量(time.gmtime(0))此模块中的函数无法处理1970纪元年以前的时间或太遥远的未来(处理极限取决于C函数库,对于32位系统而言,是2038年)2.UTC(Coordinated Universal Time,世界协调时)也叫格林威治天文时间,是

static 和 final 关键字 对实例变量赋初始值的影响

static 和 final 关键字 对实例变量赋初始值的影响 最近一直在看<深入理解Java虚拟机>,在看完了对象内存分配.Class文件格式之后,想深扒一下实例变量是如何被赋上初始值的这个问题的细节. 在2.3.1小节中讲对象创建的时候,讲到内存分配有两种方式:一种是指针碰撞:另一种是空闲列表. 而选择哪种分配方式是由JAVA堆是否规整决定,而JAVA堆是否规整则由虚拟机所采用的垃圾收集器是否带压缩整理功能决定. 我们不管内存分配采用何种方式,当内存分配完成后,虚拟机将分配到的内存空间都初

也说说复制实体类的值类型

/// <summary> /// 复制实体的值类型 /// </summary> /// <typeparam name="T">实体类</typeparam> /// <param name="obj">实体对象</param> /// <returns></returns> public static T GetActualEntity<T>(T obj

Java原始类型和值

原始类型和值 java虚拟机支持的原始数据类型包括运算类型.布尔类型和返回地址类型.运算类型包括整型和浮点型.    整型包括:    byte,8比特有正负的二进制整数,默认值是0:    short,16比特位有正负的二进制整数,默认值是0:    int,32比特位有正负的二进制整数,默认值是0:    long,16比特位有正负的二进制整数,默认值是0:    char,16比特位无符号整数表示基于多文种平台的联合码的值,用utf-16编码,默认值是null编码点(\u0000).  

Python 字典(Dictionary) items()方法-以列表返回可遍历的(键, 值) 元组数组

描述 Python 字典(Dictionary) items() 函数以列表返回可遍历的(键, 值) 元组数组. 语法 items()方法语法: dict.items() 参数 NA. 返回值 返回可遍历的(键, 值) 元组数组. 实例 以下实例展示了 items()函数的使用方法: #!/usr/bin/python dict = {'Name': 'Zara', 'Age': 7} print "Value : %s" % dict.items() 以上实例输出结果为: Value

对比两个实体类属性值的差异

/// <summary> /// 对比两个实体类属性值的差异 /// </summary> /// <typeparam name="T">实体类</typeparam> /// <param name="oldMod">原实体类</param> /// <param name="newMod">新实体类</param> /// <return