• C#方法参数 DoTop


    1、值参数
    不含任何修饰符。方法中的形参是实参的一份拷贝,形参的改变不会影响到内存中实参的的值,实参是安全的。

    2、引用参数
    以ref修饰符声明。传递的参数实际上是实参的指针,所以在方法中的操作都是直接对实参进行的,而不是复制一个值;可以利用这个方式在方法调用时双向传递参数;为了以ref方式使用参数,必须在方法声明和方法调用中都明确地指定ref关键字,并且实参变量在传递给方法前必须进行初始化。
    例:static void SomeFunction(int[] ints, ref int i)
      {
        ints[0]= 100;
        i=100;
      }

    3、输出参数
    以out修饰符声明。和ref类似,它也是直接对实参进行操作。在方法声明和方法调用时都必须明确地指定out关键字。out参数声明方式不要求变量传递给方法前进行初始化,因为它的含义只是用作输出目的。但是,在方法返回前,必须对out参数进行赋值。
    例:static void SomeFunction(out int i)
      {
        i= 100;
      }
      public static int Main()
      {
        int i;
        SomeFunction(out i);
        Console.WriteLine(i);
        return 0;
      }

    4、命名参数
    参数一般需要按定义的顺序传送给方法。命名参数允许按任意顺序传递。
    例:
    string FullName(string firstName, string  lastName)   
    {
      return firstName + " " +  lastName;
    }
    调用:
    FullName("John","Doe"); 
    FullName(lastName: "Doe",firstName: "John");

    5、可选参数
    参数也可以是可选的。必须为可选参数提供默认值。可选参数还必须是方法定义的最后一个参数。
    例:
    void TestMethod(int notOptionalNumber,int optionalNumber=10)
    {
      //do something
    }

    6、数组型参数
    以params修饰符声明。params关键字用来声明可变长度的参数列表。方法声明中只能包含一个params参数。
    例:
    static void SomeFunction(params int[] args)
    {
      Console.WriteLine("Array contains {0} elements:",args.Length);
      foreach(int i in args)
      {
        Console.Write("{0}",i);
      }
          Console.WriteLine();
    }
    public static void Main()
     {
      int [] a = {1,2,3};
      SomeFunction(a);
      SomeFunction(10,20,30,40);
      SomeFunction();
    }

  • 相关阅读:
    vim 显示行号 临时&永久
    ubuntu redis config IP password
    Vulnerability Scanning Tools
    Tomcat清理无用应用防止漏洞
    XSS平台-学习
    Amazon aws s3 加速
    XSS的DOS攻击之 server limit dos
    Linux Nginx naxsi
    Acunetix Web Vulnerability Scanner abbr. AWVS
    nginx: [emerg] open() "/var/run/nginx.pid" failed (13: Permission denied)
  • 原文地址:https://www.cnblogs.com/zizaisuixin/p/2636508.html
Copyright © 2020-2023  润新知