小编Joh*_*ler的帖子

如何在C#中将多个Action <T>组合成一个Action <T>?

如何在循环中构建Action操作?解释(对不起,它太长了)

我有以下内容:

public interface ISomeInterface {
    void MethodOne();
    void MethodTwo(string folder);
}

public class SomeFinder : ISomeInterface 
{ // elided 
} 
Run Code Online (Sandbox Code Playgroud)

以及使用上述内容的类:

public Map Builder.BuildMap(Action<ISomeInterface> action, 
                            string usedByISomeInterfaceMethods) 
{
    var finder = new SomeFinder();
    action(finder);
}
Run Code Online (Sandbox Code Playgroud)

我可以使用其中任何一个来调用它并且效果很好:

var builder = new Builder();

var map = builder.BuildMap(z => z.MethodOne(), "IAnInterfaceName");
var map2 = builder(z =>
                   {
                     z.MethodOne();
                     z.MethodTwo("relativeFolderName");
                   }, "IAnotherInterfaceName");
Run Code Online (Sandbox Code Playgroud)

如何以编程方式构建第二个实现?即

List<string> folders = new { "folder1", "folder2", "folder3" };
folders.ForEach(folder =>
               {
                 /* do something here to add current folder …
Run Code Online (Sandbox Code Playgroud)

c# lambda

16
推荐指数
1
解决办法
4171
查看次数

标签 统计

c# ×1

lambda ×1