out参数
如果你在一个方法中,返回多个相同类型的值的时候,可以考虑返回一个数组
示例:
using System; namespace out参数 { class Program { static void Main(string[] args) { //写一个方法,求一个数组中的最大值、最小值、总和、平均值 int[] numbers = {1,2,5,8,9,2}; //将要返回的4个值,放到一个数组中返回 int[] res= MaxMinSumAvg(numbers); Console.WriteLine("最大值是{0},最小值是{1},总和是{2},平均值是{3}",res[0],res[1],res[2],res[3]); Console.ReadKey(); } public static int[] MaxMinSumAvg(int[] nums) { //假设res[0] 最大值,res[1] 最小值,res[2] 总和,res[3] 平均值 int[] res = new int[4]; res[0] = nums[0]; res[1] = nums[0]; res[2] = 0; for (int i = 0; i < nums.Length; i++) { //如果当前循环到的元素比我假定的最大值还大 if (nums[i] >res[0]) { //将当前循环到的元素赋值给我的最大值 res[0] = nums[i]; } if (nums[i] <res[1]) { res[1] = nums[i]; } res[2] += nums[i]; } res[3] = res[2] / nums.Length;//平均值 return res;//返回数组 } } }
但是,如果返回多个不同类型的值的时候,返回数组就不行了,那么这个时候我们考虑使用out参数,
out参数:可以在一个方法返回多个不同类型的参数,out表示我要多余返回的那个参数
示例:
using System; namespace out参数 { class Program { static void Main(string[] args) { int[] numbers = { 1, 3, 5, 7, 9 }; //Test函数调用时需要几个int类型的变量实参,但main方法里并没有,所有要定义几个变量作为实参用。
//这几个参数可以不给它赋值,因为out方法里面已经赋过值了。
int max; int min; int sum; int avg; Test(numbers, out max, out min, out sum, out avg); Console.WriteLine(max); Console.WriteLine(min); Console.WriteLine(sum); Console.WriteLine(avg); Console.ReadKey(); } //这个Test方法并没有返回值,我使用out参数多余返回了4个参数 public static void Test(int[] nums,out int max,out int min,out int sum,out int avg) { //out参数要求在方法的内部必须为其赋值、 max = nums[0]; min = nums[0]; sum = 0; for (int i = 0; i < nums.Length; i++) { if (nums[i]>max) { max = nums[i]; } if (nums[i]<min) { min = nums[i]; } sum += nums[i]; } avg = sum / nums.Length; } } }

浙公网安备 33010602011771号