是否可以使用一个通用方法,该方法需要一个方法的委托(?),或者只需要一个代码块作为参数传入?
说我有AddJob()和AddJob2()。我想将这些传递给Generic方法,该方法运行一些骨架代码,然后执行AddJob或AddJob2。
谢谢!
编辑:
我在.net 2.0上。
答案 0 :(得分:8)
不确定
public void AddJob(string jobName) { ... }
public void AddJob2(string jobName) { ... }
public void RunAddJob(Action addJob)
{
...
addJob();
}
static void Main()
{
RunAddJob(() => AddJob("job1"));
RunAddJob(() => AddJob2("job2"));
}
编辑:非通用System.Action
是.NET 3.5中的新功能。对于.NET 2.0,您可以假设:
public delegate void Action();
答案 1 :(得分:5)
大多数Enumerable类(对于LINQ)都是这样的。
T MyFunc<T>(T t, Func<T, T> addjob)
{
return addjob(t);
}
MyFunc(5, i => i + 10);