C#中 out的使用
out的作用
用于一个函数传递多个返回值,这些返回值的类型可以不相同,也可以创建结构体或者一个类,或者使用静态变量达到类似的效果。
out的用法
out的使用需要在函数的定义,和函数的使用时使用out关键字
1.在书写函数时,如写方法test
int test(int arg,out int value1,out double value2){
value1 = 1;
value2 = 2.2;
return arg;
}
这样样就返回了三个值,分别是函数返回值(int),value1(int)和value2(double)。
2.在函数的使用时
static void Main(string[] args)
{
int a,b;
double c;
a=test(1,out b,out c);
//结果a=1,b=1,c=2.2
}
使用out注意的地方
1.函数定义了out的参数,在函数使用时,必须传入相应的参数,并写上关键字out
2.在out函数中,必须要给out参数赋值后才能结束函数
举例
使用一个函数求数组的最小值、最大值、平均值。
最小值用函数的return传递,最大值和平均值用out传递。
using System;
namespace ConsoleApp3
{
class Program
{
static void Main(string[] args)
{
int[] ary = { 1, 2, 3, 4, 7 };
int Min, Max;//存储函数返回的数组最小值和最大值
double Average;//存储函数返回的平均值
Min = getAryMin(ary, out Max, out Average);
Console.WriteLine(Min);
Console.WriteLine(Max);
Console.WriteLine(Average);
}
static int getAryMin(int[] ary, out int max, out double average)
{
int max1 = 0, min1 = 0;//表示数组的最大和最小值
double average1 = 0;//表示数组的平均数
if (ary.Length > 0)
{
max1 = ary[0];
min1 = max1;
}
foreach (int i in ary)
{
average1 += i;
if (i < min1)
min1 = i;
if (i > max1)
max1 = i;
}
if (ary.Length > 0)
average1 /= ary.Length;
average = average1;
max = max1;
return min1;
}
}
}
运行结果: