zoukankan      html  css  js  c++  java
  • C#基础之参数(二) 数组参数、可选参数与命名参数

    若有需要,请先阅读参数学习的上篇:C#基础之参数(一) 值参数、引用参数与输出参数

      这次介绍的三个参数皆属于语法糖

      4.数组参数

       声明方法时,在形参前加params关键字。简化了参数调用,增加了可读性。
       用法:
       (1)在参数为数组时使用
       (2)每个方法只能有一个数组参数。且要作为最后一个参数。(只有放在最后,调用方法时编译器才能知道哪些实参属于数组参数)
       (3)调用方法可以将数组中的值一个个列出,而不用传一个数组对象(当然,传一个数组对象也是没有错的)。

      示例:

     1     class Program
     2     {
     3         static void Main(String[] args)
     4         {
     5             int sum;
     6             bool b = Add(out sum, 1, 2, 3, 4);
     7             if (b)
     8             {
     9                 Console.WriteLine(sum);
    10             }
    11         }
    12         public static bool Add(out int sum, params int[] a)
    13         {
    14             try
    15             {
    16                 sum = 0;
    17                 foreach (int item in a)
    18                 {
    19                     sum += item;
    20                 }
    21                 return true;
    22             }
    23             catch (Exception)
    24             {
    25                 sum = 0;
    26                 return false;
    27             }
    28         }
    29     }

      输出为:

    10

      实际上,这时微软为我们包装的语法糖。编译器会将1,2,3,4存在一个int数组中,并将数组传递给方法。

      5.可选参数

      用法:
       (1)在方发声明时,为可选参数制定一个默认值。
       (2)可选参数的默认值必须是一个常量。
       (3)可选参数必须出现在所有必须参数之后,否则编译器报错。(如图)
        事实上,在调用方法时,编译器会按顺序把实参依次赋值给形参,若实参的个数少于形参,则未被赋值的形参会取默认值。

       示例:

        class Program
        {
            static void Main(String[] args)
            {
                int i = Add(4);
                Console.WriteLine(i);
                i = Add(1, 2);
                Console.WriteLine(i);
            }
            public static int Add(int x, int y = 5, int z = 6)
            {
                return x + y + z;
            }
        }

      输出为:

    15
    9
    

      6.命名参数

       用法:
       (1)调用方法时,显式地说明实参所对应的实参的名字。
       (2)不必按顺序输入参数。
       (3)调用方法时,若某个参数命名,则之后的所有参数都需要命名。否则编译器会报错。

      命名参数的主要作用是,对于某些参数繁多的方法,可以增加代码可读性,避免参数顺序的错误。

      示例:

     1 class Program
     2     {
     3         static void Main(String[] args)
     4         {
     5             int i = Add(5, secondInt: 6);
     6             Console.WriteLine(i);
     7         }
     8         public static int Add(int firstInt,int secondInt)
     9         {
    10             return firstInt + secondInt;
    11         }
    12     }
  • 相关阅读:
    Two sum 两个数相加
    [ACM] hdu 1286 找新朋友(欧拉函数)
    环形队中实现队列的基本运算
    队列的顺序存储结构及其基本运算的实现
    栈的链式存储结构及其基本运算实现
    栈的顺序存储结构及其基本运算实现
    [ACM] hdu 1205 吃糖果(鸽巢原理)
    [ACM] poj 3128 Leonardo's Notebook (置换群,循环节)
    hdu acm 1051 Zipper
    [ACM] poj 2369 Permutations (置换群循环节长度)
  • 原文地址:https://www.cnblogs.com/vsSure/p/7852975.html
Copyright © 2011-2022 走看看