zoukankan      html  css  js  c++  java
  • c#---out参数

    一个方法有多个返回值时,返回值类型相同可以返回一个数组

    static void Main(string[] args)
            {
                int[] nums = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
                int[] result = GetMaxMinSumAvg(nums);
                Console.WriteLine("Max-{0},Min-{1},Sum-{2},Avg-{3}", result[0], result[1], result[2], result[3]);
                Console.ReadKey();
            }
    
            //返回数组中最大值,最小值,总和,平均值,此时4个返回值所以声明一个数组
            public static int[] GetMaxMinSumAvg(int[] nums)
            {
                //假设res[0]最大值,res[1]最小值,res[2]总和,res[3]平均值
                int[] res = new int[4];
                res[0] = nums[0];//max
                res[1] = nums[0];//min
                res[2] = 0;//sum
                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参数传递变量时,必须在方法内为其赋值,否则return的返回值没有意义

    方法的参数使用out修饰时,调用该方法时也要加上out关键字

     static void Main(string[] args)
            {
                int[] nums = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
                int max;
                int min;
                int sum;
                int avg;
                string s;
                Test(nums, out max, out min, out sum, out avg, out s);
                Console.WriteLine(max);
                Console.WriteLine(min);
                Console.WriteLine(sum);
                Console.WriteLine(avg);
                Console.WriteLine(s);
                Console.ReadKey();
            }
    
            public static void Test(int[] nums, out int max, out int min, out int sum, out int avg, out string s)//5个out参数修饰的是多余的返回值
            {
                //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;
                //此方法void无返回值,无需写return
                s = "Test_Result";
            }

     MyTryParse示例

    static void Main(string[] args)
            {
                int n;
                bool b = MyTryParse("123", out n);
                Console.WriteLine(b);
                Console.WriteLine(n);
                Console.ReadKey();
            }
    
            public static bool MyTryParse(string s, out int result)
            {
                result = 0;
                try
                {
                    result = Convert.ToInt32(s);
                    return true;
                }
                catch
                {
                    return false;
                }
            }
  • 相关阅读:
    jar-下载站点
    java-原生爬虫机制源码
    eclipse-插件安装的三种方式
    ivy,ivyde插件-eclipse
    cygwin-介绍-安装
    cygwin-使用介绍
    linux-命令全集
    jquery-遍历each
    SSD固态硬盘的闪存芯片颗粒介绍
    java-测试synchronized使用xxx.class和this使用的区别
  • 原文地址:https://www.cnblogs.com/huangxuQaQ/p/10726513.html
Copyright © 2011-2022 走看看