笔记:C#

    技术2022-07-12  85

    使用场景 函数传参:在遇到 函数传入的参数个数 无法确定时,需要灵活控制传入参数个数时,使用在参数前加上params。

    params 用于参数的数量可变的情况下,即参数的个数是未知数。

    比较 定长参数:不灵活,如果有两个形参,只能传2个实参。 变长参数:灵活,有3个传3个,有10个传10个。

    定长的做法:

    List<int> l = new ArrayList<>(); l.add(1); l.add(2); l.add(3);

    不定长的做法:

    listOf(1,2,3);

    使用params 需要知道以下4点: 主要看前两点(基本的&常用的)

    1、作用的对象:params只能修饰一维数组

    public int Sum(params int[] ps) { private int sum=0;//私有成员:sum //遍历数组ps中的每个元素p:进行加和操作 foreach(int p in ps) { sum = sum + i;//可简写sum+=i; } return sum;//返回输出结果 }

    2、位置:params永远放在最后一个位置

    memo:若函数传递了多个参数,Params标记的参数数组必须放最后

    public void func(int i,params int[] ps)//正确 public void func(params int[] ps,int i)//错误:params没放最后

    3、组合:params不可与ref、out并存

    4、限定:实参必须与形参同类型

    memo:可以是一个数组,也可以是任意多个同类型变量。

    int[] ar0 = new int[3]{1,2,3}; int[] ar1 = new int[3]{4,5,6}; public int mySum0 = Sum(ar0);//正确 public int mySum1 = Sum(ar1);//正确 public int mySum2 = Sum(1,3,5);//正确 public int mySum3 = Sum(ar0,ar1);//错误:只能传一个数组 public int mySum4 = Sum(1,3,"hello");//错误:hello不是int类型

    具体实例:复制代码测试一下输出,实践是最好的学习!

    class MyObj { //定义一个静态方法:求和 public int Sum(params int[] ps) { private int sum=0;//私有成员:sum //遍历数组ps中的每个元素p:进行加和操作 foreach(int p in ps) { sum = sum + i;//可简写sum+=i; } return sum;//返回输出结果 } //定义主函数:调用求和方法 static void Main(string[] args) { //可变参数:任意数量同类型参数 int mySum0 = Sum(1,2,3); int mySum1 = Sum(4,5,6,7,8); Console.WriteLine(mySum0); Console.WriteLine(mySum1); //实参可以是数组名 int[] ar0 = new int[3] {1,2,3}; int mySum2 = Sum(ar0); Console.WriteLine(mySum2); Console.Read(); } }
    Processed: 0.012, SQL: 10