C#有没有办法创建接受匿名函数代码作为参数的函数?

时间:2010-10-31 19:18:43

标签: c#

我想做点什么

NameOfTheMethod(parameters){
  // Code...
}

已经内置了使用,foreach,for等,但我不知道是否可以创建类似的东西。是吗?

我之所以这样问是因为有时会有很多不同的代码片段被基本相同的代码包裹起来(例子是打开与数据库的连接,创建命令,设置datareader,测试是否有元素存在于缓存中,如果没有,则去获取它,否则从缓存中获取它等。)

1 个答案:

答案 0 :(得分:5)

是的,您可以将委托实例作为参数:

void MyMethod(Func<Arg1Type, Arg2Type, ReturnType> worker) {
    Arg1Type val1 = something;
    Arg2Type val2 = somethingelse;
    ReturnType retVal = worker(something, somethingelse);
    // ...
}

你会这样称呼:

MyMethod((arg1, arg2) => {
  // do something here with the arguments
  return result;
});