17

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

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

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

4

2 回答 2

33

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

VariableLengthParameterFunction(
    secondParam: new object[] { 5, 7, 3, 2 }, 
    firstParam: 4);
于 2013-04-24T13:58:00.817 回答
1

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

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

此外,由于您使用的是params关键字,因此secondParam[1]如果不提供secondParam[0](or null) 的值,就无法提供。

也许你可以创建一个重载,它接受命名参数,然后创建object[]然后调用这个方法。或者反过来。

于 2013-04-24T14:01:24.013 回答