ccmusic 发表于 2014-2-25 17:47:36

[转]一个方法返回多个值C#

C#中有两种方法可以在函数中返回多个值,关键字是out和ref。

代码示例:

static void Main(string[] args)
{
//声明
int value;
string strOutValue;

//调用函数
//函数的参数有两个返回的值
ReturnMulValue(out strOutValue,out value);

Console.WriteLine("Call ReturnMulValue(out string strOut, out int i)");
Console.WriteLine("value = {0:N}", value);//value = 1.00
Console.WriteLine("Out string value = " + strOutValue); //Out string value = out function


//调用函数 http://www.cnblogs.com/roucheng/
//函数原返回值与参数中均得到返回的值
value = ReturnMulValue(out strOutValue);

Console.WriteLine("Call ReturnMulValue(out string strOut)");
Console.WriteLine("value = {0:N}", value);//value = 2.00
Console.WriteLine("Out string value = " + strOutValue);//Out string value = out function 2

//声明
int[] outArr;
//调用函数
//函数返回数组
ReturnMulArr(out outArr, out value);

Console.WriteLine("Call ReturnMulArr(out int[] arr, out int i)");
Console.WriteLine("value = {0:N}", value);//value = 3.00
Console.WriteLine("Out arr value ");

for (int j = 0; j < outArr.Length; j++)
{
Console.Write(outArr);//12345
}
}

/// <summary>
/// 返回多个值,原函数返回空
/// </summary>
/// <param name="strOut">使用out关键字返回的字符串</param>
/// <param name="i">使用out关键字返回的数值</param>
static void ReturnMulValue(out string strOut, out int i)
{
i = 1;
strOut = "out function";
}

/// <summary>
/// 返回多个值,原函数返回数值
/// </summary>
/// <param name="strOut">使用out关键字返回的字符串</param>
/// <returns>原函数直接返回的数值</returns>
static int ReturnMulValue(out string strOut)
{
int i = 2;
strOut = "out function 2";
return i;
}


/// <summary>
/// 返回数组
/// </summary>
/// <param name="arr">使用out关键字返回的数组</param>
/// <param name="i">使用out关键字返回的数值</param>
static void ReturnMulArr(out int[] arr, out int i)
{
arr = new int { 1, 2, 3, 4, 5};
i = 3;
}

ibcadmin 发表于 2014-2-25 17:53:48

已设精华

tyhj281 发表于 2014-3-17 19:00:29

学习学习

神神神 发表于 2014-3-29 09:57:27

学习了,新人膜拜大师

飞/可爱朋 发表于 2014-5-7 23:36:04

第一个函数和第三个函数有点类似了,只不过一个是返回string一个是返回数组:lol32个赞

小绵羊 发表于 2016-10-16 16:15:25

你好,如果函数中有两个值需要返回,该怎么解
页: [1]
查看完整版本: [转]一个方法返回多个值C#