命名参数和C#中的params关键字

时间:2013-04-24 13:55:18

标签: c# .net named-parameters

我有一个C#方法,其中使用params关键字声明了可变长度参数列表:

public void VariableLengthParameterFunction (object firstParam, 
                                             params object[] secondParam)

调用方法时有没有办法使用命名参数?

2 个答案:

答案 0 :(得分:26)

你可以使用这样的命名参数来调用它:

VariableLengthParameterFunction(
    secondParam: new object[] { 5, 7, 3, 2 }, 
    firstParam: 4);

答案 1 :(得分:0)

编辑:我假设你想使用命名参数访问params object[] secondParam数组。

目前,只有方法内的代码知道secondParam可能包含的内容。从方法签名开始,object[]和该数组中每个元素的名称/类型之间没有链接。

此外,由于您使用的是params关键字,因此无法在不提供secondParam[1](或secondParam[0])值的情况下提供null

也许您可以创建一个带有命名参数的重载,并创建object[]然后调用此方法。或者相反。