out传值
static void Main(string[] args)
{
int number1 = 10;
int number2 = 20;
int sum = AddNumber(out number1,out number2);
Console.WriteLine(number1);//显示为100
Console.WriteLine(number2);//显示为200
Console.WriteLine(sum);//和为300
Console.ReadKey();
//用out把方法内变量的值传到了主函数内
//如果方法的参数用out修饰,那么这个参数 必须在方法里 进行赋值
}
public static int AddNumber(out int num1,out int num2)
{
num1 = 100;
num2 = 200;
return num1 + num2;
利用out返回多个值
static void Main(string[] args)
{
//int number1;
//int number2 = 90;
//int sum = Show(out number1,number2);
//Console.WriteLine(number1);
//Console.WriteLine(number2);
//Console.WriteLine(sum);
//Console.ReadKey();
//out修饰方法的参数了,那么 在外面 可以不给这个参数赋值
//但是在方法里必须给这个out修饰符的参数赋初值
//另外,参数加out,是把这个方法中的参数的值传到方法外面去了
int num1;
int num2;
int sum = AddNumber(out num1,out num2);
Console.WriteLine(num1);
Console.WriteLine(num2);
Console.WriteLine(sum);
//返回了三个值 num1,num2,sum
}
public static int Show(out int num1, int num2)
{
num1 = 100;
return num1 + 10;
}
public static int AddNumber(out int number1,out int number2)
{
number1 = 10;
number2 = 20;
return number1 + number2;
}
ref传值
static void Main(string[] args)
{
int number1 = 10;
int number2 = 20;
int sum = Show(ref number1,ref number2) ;
Console.WriteLine("{0},{1},{2}",number1,number2,sum);//值为100,200,300
Console.ReadKey();
//ref 使用的时候必须要在主函数内给变量赋值,和out有区别,out可以把方法里的值传出去
//ref可以把值传到方法里,也可以把值传到方法外
}public static int Show(ref int num1, ref int num2)
{
num1 = 100;
num2 = 200;
return num1 + num2;
}
利用数组来返回多个值
static void Main(string[] args)
{
int[] nums = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
int max;
int min;
int sum = ArraySum(nums,out max,out min);
Console.WriteLine("{0},{1},{2}",sum,max,min);
}
public static int ArraySum(int[] numbers,out int max,out int min)
{
max = int.MinValue;
min = int.MaxValue;
int sum = 0;
for (int i = 0; i < numbers.Length; i++)
{
if (numbers[i]>max)
{
max = numbers[i];
}
if (numbers[i]<min)
{
min = numbers[i];
}
sum += numbers[i];
}
return sum;
}
最后是可变数组