前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C#中的元组(Tuple)和结构体(struct)

C#中的元组(Tuple)和结构体(struct)

作者头像
宿春磊Charles
发布2022-03-29 09:28:52
8580
发布2022-03-29 09:28:52
举报
文章被收录于专栏:DotNet 致知

在正常的函数调用中,一个函数只能返回一个类型的值,但在某些特殊情况下,我们可能需要一个方法返回多个类型的值,除了通过ref,out或者泛型集合可以实现这种需求外,今天,讲一下元组和结构体在这一方面的应用。

元组

元组(Tuple)是一种数据结构,用于存放一组数据,它是值类型的,可读写的,类似于泛型集合,但元组的使用更加精巧,另外,元组最多接受7个元素。

元组的声明很简单:

代码语言:javascript
复制
 var tupledata=("你好",1,2) ;//最简单的声明方法
 Tuple<int,string> tuple=new Tuple<int, string>(1,"你好");//最正式的声明

正因为他是值类型,所以声明的时候要同时赋值,不然编译不通过。

那如何去获取元组中的值呢?很简单,使用元组名.Item1-7

代码语言:javascript
复制
int a = tuple.Item1;
string b = tuple.Item2;

元组中的元素也是可以自定义名称的

代码语言:javascript
复制
var tup = (name: 1, age: 2);
Console.WriteLine(tup.Item1);   //之前的调用方法依然是可用的
Console.WriteLine(tup.age);

了解了这些,我们在方法中就可以尝试通过元组去返回数据了

代码语言:javascript
复制
static (int, string) returnTuple() => (1, "你好");
var result =returnTuple();
Console.WriteLine(result.Item1);
Console.WriteLine(result.Item2);

运行结果如下:

结构体

结构体(struct)也是值类型的,它的声明就像类一样,只不过关键字是struct

下面来看一下它的声明:

代码语言:javascript
复制
   struct MyStruct
    {
        public int id;
        public string name;
    }

它的使用也很简单,继续来看代码

代码语言:javascript
复制
 MyStruct test = new MyStruct
        {
            id = 1,
            name = "小艺"
        };

因为结构体是一种值类型的,所以当一个结构体对象给另一个实例对象赋值后,改变任意一方的属性值,都不会影响到新赋值的实例对象,而引用类型则不同,本节对此不展开讨论,读者有兴趣可以关注后续的文章。

本节到此结束...

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-07-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DotNet 致知 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档