namespace _39.out_ref
{
class Program
{
static void Main(string[] args)
{
int number;// = 10; 如果没有out,必须给number赋值
int result = Test(out number);
Console.WriteLine("number={0},result={1}", number, result);
Console.ReadKey();
}
static int Test(out int a)//由out修饰的参数是往外传出值的,方法的参数中有out,那么调用此方法时,也需要在参数前面加out。
{ //通过out将a和number联系起来,就是a给number赋值。这就是通过参数返值。
a = 20;//由out修饰的参数,必须先赋值。
return 200;
}
}
}
namespace _39._1练习
{
class Program
{
static void Main(string[] args)
{
int[] nums = { 1,2,3,4,5,6,};
int max1, min1, sum1;
sum1 = compute(nums,out max1,out min1);
Console.WriteLine("数组的和为{0},最大值{1},最小值{2}",sum1,max1,min1);
Console.ReadKey();
}
/// <summary>
/// out用于传出值,ref是双向的,既可以传入值,也可以传出值。
/// </summary>
/// <param name="number">传入的数组</param>
/// <param name="max">最大值</param>
/// <param name="min">最小值</param>
/// <returns>和</returns>
static int compute(int[] number,out int max2,out int min2)
{
int sum2 = 0;
max2 = number[0];
min2 = number[0];
for (int i = 0; i < number.Length; i++)
{
sum2 += number[i];
if (number[i] > max2)
{
max2 = number[i];
}
if (number[i] < min2)
{
min2 = number[i];
}
}
return sum2;
}
}
}