【发布时间】:2010-07-10 16:59:55
【问题描述】:
这更像是一个 C# 语法问题,而不是一个需要解决的实际问题。假设我有一个将委托作为参数的方法。假设我定义了以下方法:
void TakeSomeDelegates(Action<int> action, Func<float, Foo, Bar, string> func)
{
// Do something exciting
}
void FirstAction(int arg) { /* something */ }
string SecondFunc(float one, Foo two, Bar three){ /* etc */ }
现在,如果我想用FirstAction 和SecondFunc 作为参数调用TakeSomeDelegates,据我所知,我需要这样做:
TakeSomeDelegates(x => FirstAction(x), (x,y,z) => SecondFunc(x,y,z));
但是有没有更方便的方法来使用适合所需委托签名的方法而无需编写 lambda?理想情况下类似于TakeSomeDelegates(FirstAction, SecondFunc),尽管显然这不会编译。
【问题讨论】:
-
"虽然显然不能编译" ...应该编译:)
-
哎呀,我真的不知道我以前做错了什么,但现在它似乎工作得很好。我想这是一个非常愚蠢的问题:S
-
抱歉,你们浪费了你们的时间……我也不确定要标记为正确的答案是什么……我应该删除这个问题吗?
标签: c# syntax delegates lambda