zoukankan      html  css  js  c++  java
  • c#元组举例

    元组的概要:
    数组合并了相同类型的对象,而元组合并了不同类型的对象。元组起源于函数编程语言(如F#) ,在
    这些语言中频繁使用元组。在N盯4中,元组可通过.NET Fmmework用于所有的NET语言。
    .NET 4定义了8个泛型Tuple类和一个静态Tuple类,它们用作元组的工厂。这里的不同泛型Tuple
    类支持不同数量的元素。例如,Tuple<T1>包含-个元素,Tuple<T1,T2>包含两个元素,以此类推。
     
    1.第一个例子
            private Tuple<int, int> Divide(int dividend, int divisor)
            {
                int result = dividend / divisor;
                int reminder = dividend % divisor;
                return Tuple.Create<int, int>(result, reminder);           //返回两个相同类型元素的元组
            }
           --------测试-------------
            private void button1_Click(object sender, EventArgs e)
            {
                Tuple<int, int> result = Divide(13, 2);
                Console.WriteLine("result of divison:{0}," +
                    "reminder:{1}", result.Item1, result.Item2);                //用属性item1,item2访问元组的项
            }
           -------结果-------------
           result of divison:6,reminder:1
    2.第二个例子
            private Tuple<int, string> MyTest2(int dividend, string Name)
            {
                int result = dividend / 2;
                string name = "Hello," + Name;
                return Tuple.Create<int, string>(result, name);      //返回两个不同类型元素的元组
            }
            --------测试-------------
            private void button2_Click(object sender, EventArgs e)
            {
                Tuple<int, string> result = MyTest2(13, "limin");
                Console.WriteLine("result of divison:{0}," +
                    "Name:{1}", result.Item1, result.Item2);                //用属性item1,item2访问元组的项
            }
            -------结果-------------
            result of divison:6,Name:Hello,limin
    3.第三个例子
    如果元组包含的项超过8个,就可以使用带8个参数的Tuple类定义。最后一个模板参数是TRest ,
    表示必须给它传递一个元组。这样,就可以创建带任意个参数的元组了。
    下面说明这个功能:
    public class Tuple<T1,T2,T3,T4,T5,T6,T7,TRest>
    其中,最后一个模板参数是一个元组类型,所以可以创建带任意多项的元组:
    var tuple = Tuple.Create<string,string,string, int,int,int,double,
    Tuple<int,int>>(
    "stephanie","Alina","Nagel", 2009,6,2,1.37,
    Tuple.Create<int,int> (52,3490));
    
    
    Tuple为何物?
    
    什么是Tuple,在汉语上我们将其翻译为元组。Tuple的概念源于数学概念,表示有序的数据集合。在.NET中Tuple被实现为泛型类型,n-Tuple表示有n个元素的Tuple,集合的元素可以是任何类型,例如定义一个3-Tuple表示Date(Year, Month, Day)时可以定义为:
    // Release : code01, 2009/05/29
    // Author  : Anytao, http://www.anytao.com
    var date = Tuple.Create<int, int, int>(2009, 5, 29);
    
    
    优势所在:
    为方法实现多个返回值体验,这是显然的,Tuple元素都可以作为返回值。
    灵活的构建数据结构,符合随要随到的公仆精神。
    强类型。
    不足总结:
    当前Tuple类型的成员被实现为确定值,目前而言,还没有动态决议成员数量的机制,如果你有可以告诉我:-)
    public class Tuple<T1, T2, T3, T4, T5, T6, T7, TRest>,可能引发ArgumentException。
  • 相关阅读:
    System.Web.Mvc.HttpPostAttribute vs System.Web.Http.HttpPostAttribute? [duplicate]
    Autofac Exception Summary Autofac异常汇总
    AppBox v1.0 发布了
    [原创]ExtAspNet秘密花园(十一) — 布局概述
    ExtAspNet v3.1.9
    ExtAspNet v3.1.8 发布了
    ExtAspNet 主题赏析 7款 超炫!
    ExtAspNet v3.1.7
    ExtAspNet v3.1.6
    [原创]采用Asp.Net的Forms身份验证时,持久Cookie的过期时间会自动扩展
  • 原文地址:https://www.cnblogs.com/rwh871212/p/6962627.html
Copyright © 2011-2022 走看看