• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

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

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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

 

    元组

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

    元组的声明很简单:

var tupledata=("你好",1,2) ;//最简单的声明方法 
Tuple<int,string> tuple=new Tuple<int, string>(1,"你好");//最正式的声明

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

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

int a = tuple.Item1;string b = tuple.Item2;

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

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

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

static (int, string) returnTuple() => (1, "你好");

var result =returnTuple();
Console.WriteLine(result.Item1);
Console.WriteLine(result.Item2)

    运行结果如下:

 

    结构体

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

    下面来看一下它的声明:

  struct MyStruct    { 
public int id;
public string name;
}

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

MyStruct test = new MyStruct{ 
id = 1,
      name = "小艺"
};

 

 

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

 

  我的公众号二维码:

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap