C# 方法调用时params如何传入指定参数

2025-01-03 13:32:28
推荐回答(3个)
回答1:

1. 参数数组-----params(可以将相同类型,数量可变的多个参数传给一个方法)

2. 引入:一般,参数的数量都是由目标方法声明所确定。然而,有时我们希望参数的数量是可变的。或许最好的方法是为方法传一个数组。然而,这会使调用代码变得稍微复杂一些,因为需要事先构造一个数组,再将这个数组作为参数来传递。

3. 为了简化代码,c#提供了一个特殊的关键字,它允许在调用一个方法是提供数量可变的参数,而不是由方法事先固定好参数的数量.

示例说明:上述例子中方法func可接受数量可变的参数,不管这些参数是以逗号分隔的,还是作为一个数组来传递的。为了获得这样的效果,func方法需要:(1)在方法声明的最后一个参数之前,添加一个parmas关键字。(2)将最后一个参数声明为一个数组。

  注意事项:

@1、参数数组不一定是方法声明中的唯一参数。单数必须是最后一个参数。由于只有最后一个参数才可能是参数数组,所以方法最多只能有一个参数数组。

@2、调用者可以为参数数组指定0个参数,这会造成包含0个数据项的一个数组。也可以显示地使用一个数组,而不是以逗号分隔的参数列表,最终生成的CIL代码是一样的。

@3、参数数组是类型安全的------类型必须匹配与数组指定的类型。

@4、假如目标方法的实现要求一个最起码的参数数量,请在方法声明中显示指定必须提供的参数。这样一来,假如要求的参数遗失了,就会导致编译器报错,而不需要依赖于运行时错误处理。例如:使用int max (int first,params int[] operands)而不是int max(params int[] operands),确保至少有一个值传给方法max。

回答2:

参数 paths 就是一个 string数组,

定义一个数组传入即可。

 string[] paths=new string[2]{"/assets/js/html5shiv.js", "/assets/js/respond.min.js"};
            RenderJS("type=\"text/javascript\"", paths);

请参考并采纳,谢谢!

回答3:

static void MultiParams(params int[] parArr)
{
    Console.Write("数组包含{0}个元素:",parArr.Length);
    foreach(int i in parArr)
    {
        Console.Write(" {0} ",i );
    }
    Console.WriteLine();
}
static void Main(string[]  args)
{
    int[] arr = {1,2,3,4,5};
    MultiParams(arr);    //使用一个数组作为参数
    MultiParams(10,20);    //使用2个整数
    MultiParams(5,6,7,8);    //使用4个整数
    MultiParams()    //使用0个整数
}


数组参数传值很灵活的。