转载请注明出处:http://blog.csdn.net/hongjiapeng/article/details/78088302
1、out参数。
如果你在一个方法中,返回多个相同类型的值的时候,可以考虑返回一个数组。但是,如果返回多个不同类型的值的时候,返回数组就不行了,那么这个时候,我们可以考虑使用out参数。out参数就侧重于在一个方法中可以返回多个不同类型的值。
不使用out参数,写一个方法 求一个数组中的最大值、最小值、总和、平均值
static void Main(string[] args)
{
int[] numbers = { 1,2,3,4,5,6,7,8,9,10};
//将要返回的4个值,放到一个数组中返回
int[] result= GetMaxMinSumAvg(numbers);
Console.WriteLine("该数组的最大值为{0},最小值为{1},总和为{2},平均值为{3}",result[0],result[1],result[2],result[3]);
Console.ReadKey();
}
/// <summary>
/// 求一个数组的最大值、最小值、总和、平均值
/// </summary>
/// <param name="nums">要求的数组</param>
static int[] GetMaxMinSumAvg(int[] nums)
{
int[] temp=new int[4];
//假设res[0]为最大值 res[1]为最小值 res[2]为总和 res[3]为平均值
temp[0] = nums[0];//max
temp[1] = nums[0];//min
temp[2] = 0;//sum
temp[3] = 0;//avg
for (int i = 0; i < nums.Length; i++)
{
if (nums[i] > temp[0])
{
temp[0] = nums[i];
} if (nums[i] < temp[1])
{
temp[1] = nums[i];
}
temp[2] += nums[i];//总和
}
temp[3] = temp[2] / nums.Length;//平均值
return temp;
}
计算结果如下:
但是这样写有一个问题,上面我们返回的这4个值都是int类型,所以可以放到int类型的数组里面。假如在上面那个GetMaxMinSumAvg(int[] nums)函数里面,我想要你再额外的返回给我一个字符串,该怎么做呢?
.
.
.
temp[0] = nums[0];//max
temp[1] = nums[0];//min
temp[2] = 0;//sum
temp[3] = 0;//avg
//假如还需要返回得调用者一个字符串和一个布尔类型的值(下面两行代码),该怎么做呢?
string userName="admin";
bool b=true;
for (int i = 0; i < nums.Length; i++)
.
.
.
要返回的多个值是同一种类型可以用数组,但要返回的类型不是一种,该怎么做呢?这就需要用到我们的out参数。
下面再写一个方法
static void Main(string[] args)
{
int[] numbers = { 1,2,3,4,5,6,7,8,9,10};
int max1;//这里可以只定义、不赋值,因为在调用下面的TestOutPram函数的时候已经给赋了
int min1;