当前位置:  开发笔记 > 编程语言 > 正文

是否可以爆炸数组,以便可以使用params关键字将其元素传递给方法?

如何解决《是否可以爆炸数组,以便可以使用params关键字将其元素传递给方法?》经验,为你挑选了1个好方法。

以这个非编译代码为例:

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?



1> James Curran..:

只是通过它.folders参数首先是一个数组."params"功能是一点编译魔术,但它不是必需的.

AppendFolders(extraFolders);

现在,就这个特殊情况而言,你必须首先向该数组添加一些东西.

List lstFolders = new List(extraFolders);
lstFolder.Insert(0, callingModule);
lstFolder.Insert(0, version);
lstFolder.Insert(0, basefolder);
return AppendFolders(lstFolders.ToArray());

推荐阅读
mobiledu2402851323
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有