C#基本语法之可选参数和命名实参

可选参数就是意味着一些参数是可选的,调用者不必显示的指定他们的值。对于任何这种参数,都将给定一个默认值

      static void Main(string[] args)
        {

            Print_NO(2);
            Console.ReadLine();
        }
        /// <summary>
        /// 可选参数必须出现在必选参数之后,否则将会抛出未于实参对应的异常
        /// </summary>
        /// <param name="a"></param>
        /// <param name="b"></param>
        /// <param name="z"></param>
        static void Print(int a,int b=10,int z=20)
        {
            Console.WriteLine("a=" + a + ",b=" + b + ",z=" + z + "");
        }
        /// <summary>
        /// 无必选参数,则不需要指定
        /// </summary>
        /// <param name="b"></param>
        /// <param name="z"></param>
        static void Print_NO( int b = 10, int z = 20)
        {
            Console.WriteLine("b=" + b + ",z=" + z + "");
        }
        /// <summary>
        /// 参数数组不能为可选类型
        /// </summary>
        /// <param name="names"></param>
        static void PrintError_1(params string[] names=null)
        {
        }
        /// <summary>
        /// ref/out不能为可选参数
        /// </summary>
        /// <param name="name"></param>
        static void PrintError_2(ref string name="default")
        {
        }

命名实参的基本概念就是在指定实参的值时,可以同时指定相应参数的名称。编译器将判断参数的命名是否正确,并将指定的值赋给这个参数

 static void Main(string[] args)
        {
            
            Print(2, 10, 20);//正常调用
            Print(2, b: 10, z: 20);//指定部分实参
            Print(a:2,  10, z: 20);//指定命名实参时必须在位置实参之后,否则编译器会报错
            Console.ReadLine();
        }

        static void Print(int a, int b, int z)
        {
            Console.WriteLine("a=" + a + ",b=" + b + ",z=" + z + "");
        }

猜你喜欢

转载自www.cnblogs.com/Bala-PanXin/p/9582023.html