System.Tuple类型

 1.定义

在System命名空间,Microsoft定义了几个泛型Tuple类型,它们全部从Object派生,区别只在于泛型参数的个数。

 

2.用法

一般的,可以用它来存储和传递一个逻辑数据行,比如,在一次函数调用中,获取了员工的姓名和年龄,如果不想自定义类型,就可以通过以下方式,来把这一组类型不同的数据传递到函数外:

        static Tuple<string, int> GetNameAndAge()
        {
            return new Tuple<string, int>("LeonHong", 26);
        }

当然,不足之处在于,它没有自解释性,传递到函数外之后,生产者必须对其有足够的注释说明,否则,光看它的属性,只有诸如Item1,Item2...。如果作为API接口传递给别人使用,会让人摸不着头脑。

 

3.扩展

(1) 编译器只能在调用一个泛型方法时推断泛型类型,调用构造器时不能。因此System命名空间中还包含了一个非泛型静态Tuple类,其中包含了一组静态Create方法,他们可以根据实参来推断泛型的类型

        static Tuple<string, int> GetNameAndAge( string name, int number )
        {
            return Tuple.Create(name, number);
        }

 

(2)如果需要创建大于8个元素的一个Tuple,可以参见以下声明:

public class Tuple<T1, T2, T3, T4, T5, T6, T7, TRest> : IStructuralEquatable, IStructuralComparable, IComparable

通过给TRest给定一个新的Tuple,来完成。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值