C#函数多返回值的方法

C#以前都是不支持多返回值,当需要返回多个值的时候,就会感觉比较麻烦,通常的做法有

1.采用ref,out 关键字返回

2.定义类或者结构体 返回对象

C# 6.0出来了新的语法 Tuple 支付返回多个值

示例:

 1 class Demo
 2     {
 3         public void Run()
 4         {
 5             var num = Exec(5, 6);
 6             Console.WriteLine(num.Item1); //第一个返回值
 7             Console.WriteLine(num.Item2); //第二个返回值
 8
 9             Console.WriteLine();
10             var num2 = Exec2(5, 6);
11             Console.WriteLine(num2.Item1); //第一个返回值
12             Console.WriteLine(num2.Item2); //第二个返回值
13             Console.WriteLine(num2.Item3); //第三个返回值
14         }
15
16         public Tuple<int, int> Exec(int a, int b)
17         {
18             Tuple<int, int> tup = new Tuple<int, int>(a + b, a * b);
19             return tup;
20         }
21
22         public Tuple<int, int, int> Exec2(int a, int b)
23         {
24             Tuple<int, int, int> tup = new Tuple<int, int,int>(a + b, a * b, a - b);
25             return tup;
26         }
27
28     }

结果:

这样就返回多个值了。。

参考:http://204367.vhost447.cloudvhost.net/Article.aspx?id=cbd9ec8b-2329-49e0-9719-1cf48fd64d6e

时间: 2024-10-25 20:09:59

C#函数多返回值的方法的相关文章

PHP的exec()函数无返回值排查方法[转]

在安全imagemagic时 需要用到 exec很多服务器上安装失败 exec()执行外部命令失败,但没有任何错误信息. exec执行某命令在命令行下没有问题,但是在PHP中就出错.这个问题99.99%与权限有关,但是exec执行的命令不会返回错误.一个技巧就是使用管道命令,假设你的exec调用如下: exec('convert a.jpg b.jpg', $output, $return_val); 可以更改如下: exec('convert a.jpg b.jpg 2>&1', $out

python获得线程调用函数的返回值

threading.Thread 并没有显式的提供获取线程调用函数返回值的方法,需求自己实现. 使用数据库是一个办法: 可以让子线程将数据写到数据库中,消费线程再去数据库中读取数据: 如果不想用数据库,可以使用类的全局变量来做传递, 示例代码如下: import os import threading class SubThread(): data = {} def __init__(self): ... def execute_func(self, key): # 执行各种操作 ... ret

函数的返回值

1.params 可变参数  必须出现在参数列表的最后. 2.ref 仅仅是一个地址,引用传递,可以把值传递强制改为引用传递 3.out 让函数可以输出多个值 •1.在方法中必须为out参数赋值 •2.out参数的变量在传递之前不需要赋值,即使赋值了也不能在方法中使用.(赋值没意义) 3ref •参数在传递之前必须赋值 •在方法中可以不为ref参数赋值,可以直接使用. ref应用场景内部对外部的值进行改变,out则是内部为外部变量赋值,out一般用在函数有多个返回值的场所. 函数的返回值,布布扣

Scheme高阶函数之函数作为返回值暨currying/柯里化

1.4.1currying/柯里化 通常,编程的函数可以有一个参数列表,而λ表达式要求单参数.所以,currying/柯里化--多个参数的函数转化为只有一个参数的多个函数的连续调用,需要函数作为返回值. 有λ表达式,λx. λy. ( 2x+3y) (define (F x y)(+ ( * 2 x) (* 3 y)));;;等价于下面的表示 (define F (lambda ( x y) (+ ( * 2 x) (* 3 y)) ) ) (F 2 3)            → 13 函数F

新手,对函数,函数指针,回调函数, 函数指针作为函数的返回值和block的一些见解

很多初学者,学c语言时,看到函数都觉得难,我也是,一开始觉得函数太难了,后来慢慢就理解了 第一:函数 在c语言中最简单的函数一般有四种: 1, 无返回值, 无参数. 2, 无返回值,有参数. 3, 有返回值,无参数. 4, 有返回值,有参数 1, 无返无参  定义方式:      void 函数名(); 一般不怎么用这种形式的函数,可用来输出,打印 void functionOne() { printf("无返回值,无参数"); // 没有返回值不能写return } int main

Python学习笔记之函数作为返回值、闭包的解释

函数作为返回值 高阶函数除了可以接受函数作为参数外,还可以把函数作为结果值返回. 我们来实现一个可变参数的求和.通常情况下,求和的函数是这样定义的: def calc_sum(*args): ax = 0 for n in args: ax = ax + n return ax 但是,如果不需要立刻求和,而是在后面的代码中,根据需要再计算怎么办?可以不返回求和的结果,而是返回求和的函数! def lazy_sum(*args): def sum(): ax = 0 for n in args:

简单介绍如何使用PowerMock和Mockito来mock 1. 构造函数 2. 静态函数 3. 枚举实现的单例 4. 选择参数值做为函数的返回值(转)

本文将简单介绍如何使用PowerMock和Mockito来mock1. 构造函数2. 静态函数3. 枚举实现的单例4. 选择参数值做为函数的返回值5. 在调用mock出来的方法中,改变方法参数的值 一点简要说明:Mockito其实已经可以满足大部分的需求,但是它的实现机制是使用cglib来动态创建接口的类的实例.但是这种实现方式不能用于构造函数和静态函数,因为那需要使用类的字节码(比如使用javassist). 所以我们才需要结合使用PowerMock. 1. mock构造函数, 如果有代码没有

Python的函数式编程-传入函数、排序算法、函数作为返回值、匿名函数、偏函数、装饰器

函数是Python内建支持的一种封装,我们通过把大段代码拆成函数,通过一层一层的函数调用,就可以把复杂任务分解成简单的任务,这种分解可以称之为面向过程的程序设计.函数就是面向过程的程序设计的基本单元. 传入函数 函数的本身也可以作为参数. Python内建的mapreduce的函数.(来源于谷歌的,后来被道格这家伙开源了,成为当今处理大数据最火热的hadoop中的计算模型---MapReduce) 我们先看map.map()函数接收两个参数,一个是函数,一个是序列,map将传入的函数依次作用到序

关于 Shell中函数的返回值 问题

# !/bin/sh sum() { echo $(($1+$2)) return $(($1-$2)) } sum $1 $2 c=$(sum $1 $2) echo $? echo $c 执行命令:./bashTest 11 1 运行结果是: 12 -- sum $1 $2的结果 10 -- echo $?的结果,因为return的值为10 12 --  echo $c的结果,值为12,所以c并不会被附上return的值,echo $c时调用了sum函数,所以打印了12 我们对shell中的