这篇文章主要讲解了“C#输出参数out问题如何解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C#输出参数out问题如何解决”吧!
C# 输出参数out
什么是输出参数
方法声明时,使用out修饰符声明的形参,成为输出参数。
输出参数的特点
输出参数不创建新的储存位置。
输出参数表示的储存位置就是实参表示的储存位置。
传递给输出参数的实参在方法调用前不需要强制初始化,在方法内部使用该形参时,需要强制赋值一次。
out参数的使用
使用out参数,可以使方法返回多个返回值。
static void Main(string[] args){ int[] numbers = { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; int max; int min; int sum; double avg; int[] arr = GetMaxMinSumAvg(numbers, out max, out min, out sum, out avg); Console.WriteLine(max); Console.WriteLine(min); Console.WriteLine(sum); Console.WriteLine(avg); Console.WriteLine(arr.Length); Console.ReadKey();} public static int[] GetMaxMinSumAvg(int[] nums, out int max, out int min, out int sum, out double avg){ int[] res = new int[4]; max = nums.Max(); min = nums.Min(); sum = nums.Sum(); avg = nums.Average(); return res;}
C#中out参数、ref参数与值参数用法
ref参数是引用,out参数为输出参数。
out参数修饰符
当希望方法返回多个值时,声明 out 方法非常有用。
不必初始化作为 out 参数传递的变量。然而,必须在方法返回之前为 out 参数赋值。
属性不是变量,不能作为 out 参数传递。
static void Main(string[] args) { string s = "123"; int result; bool b = MyTest(s,out result); } public static bool MyTest(string s, out int result) { bool isTrue; try { result = Convert.ToInt32(s);//使用out参数必须在定义方法内进行赋值 isTrue = true; } catch { isTrue = false; result = 0; } return isTrue; }
该方法返回类型为bool类型,在返回bool类型的同时也顺带返回了int类型的result变量。即,返回两种变量类型。
ref参数修饰符
必须使用初始化过的变量
属性不是变量,不能作为 ref 参数传递。
Ref则用在要要被调出使用的方法修改调出使用者的引用的时候。
ref参数在定义的方法内对其进行处理,再将结果返回,定义方法无需多余的返回类型。
static void Main(string[] args) { //使用ref参数来交换两个数字的值 int a = 1; int b = 2; Change(ref a, ref b); Console.WriteLine("a{0},b{1}",a,b); Console.ReadKey(); } public static void Change(ref int a, ref int b) { int temp; temp = a; a = b; b = temp; }
感谢各位的阅读,以上就是“C#输出参数out问题如何解决”的内容了,经过本文的学习后,相信大家对C#输出参数out问题如何解决这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!