c#4.0新特性之 组元(Tuple)

发表于:2013-11-04 09:59

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:斌临城下    来源:51Testing软件测试网采编

  组元是C# 4.0引入的一个新特性,编写的时候需要基于.NET Framework 4.0或者更高版本。组元使用泛型来简化一个类的定义。
  应用场景:不需要专门定义类结构,只需要简单搭建一组数据模型的时候。
  如果组元中包含的元素过多,个人建议还是专门建个实体类比较好,易于后期维护。
  先以下面的一段代码为例子:
1   public class Point
2     {
3         public int X { get; set; }
4         public int Y { get; set; }
5     }
6
7
8             //the user customer data type.
9              Point p = new Point() { X = 10, Y = 20 };
10             //use the predefine generic tuple type.
11              Tuple<int, int> p2 = new Tuple<int, int>(10, 20);
12
13             //
14              Console.WriteLine(p.X + p.Y);
15             Console.WriteLine(p2.Item1 + p2.Item2);
  一个简单的包含两个Int类型成员的类,传统的方法定义point需要写很多代码,但是使用tuple却只有一句,组元多用于方法的返回值。如果一个函数返回多个类型,这样就不在用out , ref等输出参数了,可以直接定义一个tuple类型就可以了。非常方便。
  下面的列子稍微复杂一点:
1             //1 member
2              Tuple<int> test = new Tuple<int>(1);
3             //2 member ( 1< n <8 )
4              Tuple<int, int> test2 = Tuple.Create<int, int>(1,2);
5             //8 member , the last member must be tuple type.
6              Tuple<int, int, int, int, int, int, int, Tuple<int>> test3 = new Tuple<int, int, int, int, int, int, int, Tuple<int>>(1, 2, 3, 4, 5, 6, 7, new Tuple<int>(8));
7
8             //
9              Console.WriteLine(test.Item1);
10             Console.WriteLine(test2.Item1 + test2.Item2);
11             Console.WriteLine(test3.Item1 + test3.Item2 + test3.Item3 + test3.Item4 + test3.Item5 + test3.Item6 + test3.Item7 + test3.Rest.Item1);
21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号