C#—元组

元组 概念:

1.使方法 可以返回多个返回值 而不需要借助 out ref 关键字。

2.使方法 可以返回多个返回值 而不需要借助 out ref 关键字,Tuple这个泛型类,可以允许我们返回多个参数。

1.基于 .Net4.0 框架的元组-Tuple:

创建一个元组 Tuple:

 1.  Tuple test3 = new Tuple("2");

2.  Tuple test4 = Tuple.Create("3");

3.   Tuple> test3 = new Tuple>(1, 2, 3, 4, 5, 6, 7, new Tuple(8));

示例1:

public static Tuple GetFullName() => new Tuple("first", "second", "third");

public static void OldTuple()

        var fullName = GetFullName();

        Console.WriteLine(fullName.Item1);

        Console.WriteLine(fullName.Item2);

        Console.WriteLine(fullName.Item3);

如此为一个元组 Tuple,由 fullName 接收来自GetFullName()函数所返回的值,而这个返回值为Tuple类型(泛型)

上方代码 将获得到的打印数据为 “first”、“second”、“third”。

优点:此等 Tuple 可以不借助于 ref 和 out 参数从而返回出多个 多类型的数据,这些数据被保存在一个元组中方便调用

缺点:由 Tuple 返回出的数据显示方式单一 为上方所示的 以 Item1 2 3 作为Tuple中的数据下标(只能这种方式取用)

示例2:

public static Tuple ReturnOldTuple()

         int id = 6;

         string name = "王";

         int num = 50;

         return Tuple.Create(id, name, num); //创建返回对象 Tuple

public static void OldTuple()

        Tuple tuple = ReturnOldTuple();

         Console.WriteLine(tuple.Item1);

         Console.WriteLine(tuple.Item2);

         Console.WriteLine(tuple.Item3);

如此示例 打印获得参数为6、王、50, 可返回多个不同类型的数据。

接收方式与上例不同,此次创建了一个新的 Tuple 类型对象用来接受 ReturnOldTuple() 函数中所返回的数据。 两种方式 都可 任选其一。

2.C#新特性ValueTuple 新元组

创建一个ValueTuple:

1. ValueTuple test = new ValueTuple();

2.  ValueTuple test2 = ValueTuple.Create(2,"5");

3.在函数中可快速创建并返回 return(int ,string,double); 如 示例 2 中所示

示例1:

static (string First, string Second, string Third) GetFullNum() => ("first", "second", "third");

public static void NewValueTuple()

        var fullnum = GetFullNum();

         Console.WriteLine(fullnum.First);

         Console.WriteLine(fullnum.Second);

         Console.WriteLine(fullnum.Third);

如此 打印获得结果为:first、second、third。 可以看到在编写中已经去除了 Item 1 2 3 从而改为返回值中的元素名称。

示例2:

public static (int id, string name, int num) ReturnNewValueTupleTwo()

         int id = 6;

        string name = "王";

         int num = 50;

        return (id, name, num);

        //return ValueTuple(id, name, num); 方法二

        //return ValueTuple.Create(id, name, num); 方法三

public static void NewValueTuple()

         (int id, string name, int num) valueTupleTwo = ReturnNewValueTupleTwo(); //应该使用这种方法声明的变量接受

        //var valueTupleTwo = ReturnNewValueTupleTwo(); 方法二

        Console.WriteLine(valueTupleTwo.id);

        Console.WriteLine(valueTupleTwo.name);

         Console.WriteLine(valueTupleTwo.num);

如上 为第二种返回ValueTaple的方法,将获得返回值:6、王、50. 也可通过 .名称 的方式获得值。

上方案例种 通过三种方法返回ValueTuple 用两种方法接受ValueTuple值。

你可能感兴趣的:(C#—元组)