C#Tuple的用法

一.返回两个参数的常用方法

private void button1_Click(object sender, EventArgs e)

        {
            string validateresult = string.Empty;
            var person = new Person { Name="张三",Age=200};
            bool isvalidate = Validate(person, out validateresult);
            if (!isvalidate)
            {
                MessageBox.Show(validateresult);
            }
            
        }


        private static bool Validate(Person person, out string validateresult)
        {
            validateresult = string.Empty;
            if (person.Age > 150 || person.Age < 0)
            {
                validateresult = "年龄超出范围!";
                return false;
            }
            return true;
        }

二.用Tuple代替上边的方法
        private void button2_Click(object sender, EventArgs e)
        {
            var person = new Person { Name = "张三", Age = 200 };
            var result = Validate2(person);
            if (!result.Item1)
            {
                MessageBox.Show(result.Item2);
            }
        }


        private static Tuple<bool, string> Validate2 (Person person)
        {
            if (person.Age > 150 || person.Age < 0)
            {
                return Tuple.Create(false,"年龄超出范围!");
            }
            return Tuple.Create(true,string.Empty);
        }

       三.Tuple返回多参的扩展
        private void button3_Click(object sender, EventArgs e)
        {
            int num = 5;
            var result = caculte(num);
            MessageBox.Show(string.Format("{0} * 1 = {1}\n{0} * 2 = {2}\n{0} * 3 = {3}\n{0} * 4 = {4}\n{0} * 5 = {5}\n{0} * 6 = {6}\n{0} * 7 = {7}\n{0} * 8 = {8}\n{0} * 9 = {9}\n{0} * 10 = {10}", num, result.Item1, result.Item2, result.Item3, result.Item4, result.Item5, result.Item6, result.Item7, result.Rest.Item1, result.Rest.Item2, result.Rest.Item3));
        }


        private static Tuple<int, int, int, int, int, int, int, Tuple<int, int, int>> caculte(int num)
        {
            Tuple<int, int, int, int, int, int, int, Tuple<int, int, int>> multicaculte = new Tuple<int, int, int, int, int, int, int, Tuple<int, int, int>>
                (
                num * 1
                ,num * 2
                ,num * 3
                ,num * 4
                ,num * 5
                ,num * 6
                ,num * 7
                ,new Tuple<int,int,int>
                    (
                        num * 8
                        ,num * 9
                        ,num * 10
                    )
                );
            return multicaculte;
        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值