以这段非编译代码为例:
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 中?
最佳答案
就通过吧。 folders 参数首先是一个数组。 “params”功能有点像编译器的魔法,但这不是必需的。
AppendFolders(extraFolders);
现在,对于这个特定的实例,您必须首先向该数组添加一些内容。
List<string> lstFolders = new List<string>(extraFolders);
lstFolder.Insert(0, callingModule);
lstFolder.Insert(0, version);
lstFolder.Insert(0, basefolder);
return AppendFolders(lstFolders.ToArray());
关于c# - 是否可以分解一个数组,以便可以将其元素传递给带有 params 关键字的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/192715/