【发布时间】:2008-10-10 19:19:50
【问题描述】:
以这段非编译代码为例:
public string GetPath(string basefolder, string[] extraFolders)
{
string version = Versioner.GetBuildAndDotNetVersions();
string callingModule = StackCrawler.GetCallingModuleName();
return AppendFolders(basefolder, version, callingModule, extraFolders);
}
private string AppendFolders(params string[] folders)
{
string outstring = folders[0];
for (int i = 1; i < folders.Length; i++)
{
string fixedPath = folders[i][0] == '\\' ? folders[i].Substring(1) : folders[i];
Path.Combine(outstring, fixedPath);
}
return outstring;
}
这个例子是我正在使用的测试代码的简化版本。请,我只对与 param 关键字直接相关的解决方案感兴趣。我知道列表和其他类似的东西是如何工作的。
有没有办法“分解”extraFolders 数组,以便将其内容与其他参数一起传递到 AppendFolders 中?
【问题讨论】:
-
只是为了确保我理解,您希望将 extraFolders 数组作为 AppendFolders(extraFolders[0], extraFolders[1], ...etc etc) 发送到 AppendFolders 方法?有趣的问题,我很好奇这是否可能,虽然我不知道如何......
-
您的澄清只会增加更多的困惑。传递的额外项目是否是其中的重要部分?如果没有,我的答案的前半部分就是你想要的。如果是,这是一个非常特殊的情况,由我回答的后半部分处理。
-
两者都很重要,但它们使用的上下文并不重要。我想说的是我不在乎它们是路径还是我正在使用 Path.Combine,我只想要一个简单的单线器将两组参数组合在一起,以便可以将它们传递给 params 方法。
标签: c# parameters keyword variadic-functions params-keyword