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关键字[重复]的主要内容,如果未能解决你的问题,请参考以下文章

Python参数之命名关键字参数

C#中的System.Speech命名空间初探

C# params 用法简介

函数之命名关键字

Scala可变参数列表,命名参数和参数缺省

如何将命名参数放入哈希中?