int[] number = { 4,8,2,9,5};
//声明两个变量来接收compute方法中传入的值(out max,out min)
int max,min;
//声明一个sum变量来接收compute方法中返回的s的值
int sum=compute(number,out max ,out min);
static int compute(int []num,out int max,out int min)
{
static int compute(int []num,out int max,out int min)
{ //声明一个int类型变量s,把num[0]赋给max和min,如果min值为0,数组中元素的值都大于0,无法判断
int s = 0; max = num[0]; min = num[0];
//调用一个for循环,循环判断数组中各个元素的大小,并赋值
for (int i = 0; i < num.Length; i++)
{
s = s + num[i];
//判断max和num[i]的大小,如果num[i]>max,则把num[i]赋给max
if (max < num[i])
{
max = num[i];
}
//判断min和num[i]的大小,如果min>num[i],则把num[i]赋给min
if (num[i]<min)
{
min = num[i];
}
}
//返回s
return s;
}
作者: 李阳Leo 时间: 2012-9-25 00:34
方法通过out接收过来的变量,必须赋值才能使用,不管你传之前有没有赋值
通过ref接收过来的变量,如果传值之前已经赋值,可以直接用,out则不行 作者: 李后量 时间: 2012-9-25 12:14
楼上的说的都够清楚的了,再说下,放在out后面的变量在该方法前赋值是无谓的,因为它不会被传入,而该变量在传出之前必须得赋值,如果是多分支的则必须在每条分支的最后都对该变量进行赋值,否则报错哦作者: 侍小波 时间: 2012-9-25 16:30
方法参数上的 out 方法参数关键字使方法引用传递到方法的同一个变量。当控制传递回调用方法时,在方法中对参数所做的任何更改都将反映在该变量中。
当希望方法返回多个值时,声明 out 方法非常有用。使用 out 参数的方法仍然可以返回一个值。一个方法可以有一个以上的 out 参数。若要使用 out 参数,必须将参数作为 out 参数显式传递到方法。out 参数的值不会传递到 out 参数。 不必初始化作为 out 参数传递的变量。然而,必须在方法返回之前为 out 参数赋值。 属性不是变量,不能作为 out 参数传递。