2013-04-24 67 views
7

的params关键字我有一个可变长度的参数列表C#方法使用params关键字声明?命名参数和C#

+2

你想完成什么? – Default 2013-04-24 13:58:10

+0

只是试图使用命名参数而不必更改方法签名 – marosoaie 2013-04-24 14:14:43

回答

20

您可以使用名为参数这样称呼它:

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

这似乎不适用于msbuild工具2015年,如果您使用单个元素的速记,secondparam会丢失? (虽然与devenv一起工作) – 2016-05-25 14:45:35

0

编辑:我以为你要访问使用命名参数的params object[] secondParam阵列。

目前只有方法内部的代码知道secondParam可能包含什么。从方法签名中,object[]与该数组中的每个元素的名称/类型之间没有关联。

此外,由于您使用的params关键字,没有不提供对secondParam[0](或null)的值提供secondParam[1]的方式。

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