C#中的命名参数和params关键字[重复]
Posted
技术标签:
【中文标题】C#中的命名参数和params关键字[重复]【英文标题】:Named Parameters and the params keyword in C# [duplicate] 【发布时间】:2013-04-18 02:45:50 【问题描述】:我有一个使用 params
关键字声明的可变长度参数列表的 C# 方法:
public void VariableLengthParameterFunction (object firstParam,
params object[] secondParam)
在调用方法的时候有没有使用命名参数的方法?
【问题讨论】:
你想完成什么? 只是尝试使用命名参数而无需更改方法签名 【参考方案1】:你可以像这样使用命名参数来调用它:
VariableLengthParameterFunction(
secondParam: new object[] 5, 7, 3, 2 ,
firstParam: 4);
【讨论】:
这似乎不适用于 msbuild tools 2015,如果您使用单个元素的简写,第二个参数会丢失? (虽然适用于 devenv)【参考方案2】:编辑:我假设您想使用命名参数访问 params object[] secondParam
数组。
目前只有方法内的代码知道secondParam
可能包含什么。仅从方法签名来看,object[]
与该数组中每个元素的名称/类型之间没有任何联系。
此外,由于您使用的是params
关键字,因此如果不提供secondParam[0]
(或null
)的值,就无法提供secondParam[1]
。
也许您可以创建一个采用命名参数的重载,并创建object[]
,然后调用此方法。或者反过来。
【讨论】:
这点很好,但是使用 ``` params ``` 关键字我们已经知道只有一堆没有特殊顺序的输入,所以没有必要。跨度>以上是关于C#中的命名参数和params关键字[重复]的主要内容,如果未能解决你的问题,请参考以下文章