元组
元组能够组合不同类型的对象。使用数组可以组合相同类型的对象,而元组允许使用类型的不同组合。元组有助于减少以下两个需求:
·定义自定义类或结构,以返回多个值
·定义参数,从方法中返回多个值
自从.NET Framework 4.0版本以来,元组就以泛型 Tuple 类的形式存在。然而,它们并没有得到广泛使用,因为元组的不同对象可以通过 Item1、Item2、Item3 等属性访问,这既不吸引人,也没有提供任何关于其含义的信息。
这在 C# 7中发生了变化,C# 7提供了在编程语言中集成的元组功能,这有了很大的改进,如下一个示例所示,它使用了一个简单的不可变的 Person 类:
元组的声明和初始化
可以使用圆括号声明一个元组,并使用通过括号创建的元组字面量来初始化。在下面的代码片段中,左侧声明了一个元组变量 t,其中包含一个字符串、一个 int 和一个Person。右边使用一个元组字面量来创建一个元组,它包含字符串 magic、数字 4,以及使用 Person 类的构造函数初始化的 Person 对象。访问元组时,可以使用变量 t以及在括号中声明的成员(本例中为 s、i 和 p)。
运行应用程序时,输出显示了元组的值::
s:magic,i:42,p:Stephanie Nage1
元组字面量也可以分配给元组变量,而不需要声明它的成员。这样,元组的成员就可以使用ValueTuple结构的成员名称来访问:Iteml、Item2和Item3。
可以通过定义名称后跟冒号,来为元组字面量中的元组指定名称,它与对象字面量的语法相同:
有了这些,名字只是一种方便的方式。当类型匹配时,可以将一个元组分配给另一个元组;名字并不重要:
领取专属 10元无门槛券
私享最新 技术干货