zoukankan      html  css  js  c++  java
  • 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();
    }

  • 相关阅读:
    基于策略梯度的强化学习论文调研
    Soft Actor-Critic: Off-Policy Maximum Entropy Deep Reinforcement Learning with a Stochastic Actor
    固定随机种子比较强化学习算法
    Action and learning shape the activity of neuronal circuits in the visual cortex
    大脑中的记忆机制
    A Simple Neural Attentive Meta-Learner
    【Error】Creating Server TCP listening socket *:6379: bind: No such file or directory
    Redis安装配置
    MySQL中文入库问题
    Nginx启动/重启失败
  • 原文地址:https://www.cnblogs.com/zizaisuixin/p/2636508.html
Copyright © 2011-2022 走看看