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

Fab*_*iro 1 c#

我想做点什么

NameOfTheMethod(parameters){
  // Code...
}
Run Code Online (Sandbox Code Playgroud)

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

我问这个的原因是因为有时会有许多不同的代码片段被基本相同的代码包装(例子是打开与数据库的连接,创建命令,设置datareader,测试缓存中是否存在元素并且,如果没有,去获取它,否则从缓存中获取它等)

Meh*_*ari 5

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

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

你会这样称呼:

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