C#输出参数out问题如何解决

其他教程   发布日期:2023年07月07日   浏览次数:367

这篇文章主要讲解了“C#输出参数out问题如何解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C#输出参数out问题如何解决”吧!

    C# 输出参数out

    什么是输出参数

    方法声明时,使用out修饰符声明的形参,成为输出参数。

    输出参数的特点

    1、输出参数不创建新的储存位置。

    2、输出参数表示的储存位置就是实参表示的储存位置。

    3、传递给输出参数的实参在方法调用前不需要强制初始化,在方法内部使用该形参时,需要强制赋值一次。

    out参数的使用

    使用out参数,可以使方法返回多个返回值。

    1. static void Main(string[] args)
    2. {
    3. int[] numbers = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
    4. int max;
    5. int min;
    6. int sum;
    7. double avg;
    8. int[] arr = GetMaxMinSumAvg(numbers, out max, out min, out sum, out avg);
    9. Console.WriteLine(max);
    10. Console.WriteLine(min);
    11. Console.WriteLine(sum);
    12. Console.WriteLine(avg);
    13. Console.WriteLine(arr.Length);
    14. Console.ReadKey();
    15. }
    16. public static int[] GetMaxMinSumAvg(int[] nums, out int max, out int min, out int sum, out double avg)
    17. {
    18. int[] res = new int[4];
    19. max = nums.Max();
    20. min = nums.Min();
    21. sum = nums.Sum();
    22. avg = nums.Average();
    23. return res;
    24. }

    C#中out参数、ref参数与值参数用法

    ref参数是引用,out参数为输出参数。

    out参数修饰符

    1、当希望方法返回多个值时,声明 out 方法非常有用。

    2、不必初始化作为 out 参数传递的变量。然而,必须在方法返回之前为 out 参数赋值。

    3、属性不是变量,不能作为 out 参数传递。

    1. static void Main(string[] args)
    2. {
    3. string s = "123";
    4. int result;
    5. bool b = MyTest(s,out result);
    6. }
    7. public static bool MyTest(string s, out int result)
    8. {
    9. bool isTrue;
    10. try {
    11. result = Convert.ToInt32(s);//使用out参数必须在定义方法内进行赋值
    12. isTrue = true;
    13. }
    14. catch
    15. {
    16. isTrue = false;
    17. result = 0;
    18. }
    19. return isTrue;
    20. }

    该方法返回类型为bool类型,在返回bool类型的同时也顺带返回了int类型的result变量。即,返回两种变量类型。

    ref参数修饰符

    1、必须使用初始化过的变量

    2、属性不是变量,不能作为 ref 参数传递。

    3、Ref则用在要要被调出使用的方法修改调出使用者的引用的时候。

    ref参数在定义的方法内对其进行处理,再将结果返回,定义方法无需多余的返回类型。

    1. static void Main(string[] args)
    2. {
    3. //使用ref参数来交换两个数字的值
    4. int a = 1;
    5. int b = 2;
    6. Change(ref a, ref b);
    7. Console.WriteLine("a{0},b{1}",a,b);
    8. Console.ReadKey();
    9. }
    10. public static void Change(ref int a, ref int b)
    11. {
    12. int temp;
    13. temp = a;
    14. a = b;
    15. b = temp;
    16. }

    以上就是C#输出参数out问题如何解决的详细内容,更多关于C#输出参数out问题如何解决的资料请关注九品源码其它相关文章!