C# 操作>>与 Func<>范围
我有以下方法,我无法找出要调用的正确语法:
public T GetAndProcessDependants<C>(Func<object> aquire,
Action<IEnumerable<C>, Func<C, object>> dependencyAction) {}
我试图这样调用它:
var obj = MyClass.GetAndProcessDependants<int>(() => DateTime.Now,
(() => someList, (id) => { return DoSomething(x); }) }
编辑: 谢谢大家,你们帮助我点亮了我的脑海。这就是我所做的:
var obj = MyClass.GetAndProcessDependants<int>(
() => DateTime.Now,
(list, f) =>
{
list = someList;
f = id => { return DoSomething(id); };
});
不知道为什么我对此有疑问。我想这就是那些日子之一..
谢谢
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
你的 lambda 语法完全错误。
您需要创建一个带有两个参数的单个 lambda 表达式:
Your lambda syntax is totally wrong.
You need to create a single lambda expression with two parameters:
现在,当该函数需要两个参数时,它只接受一个参数!
您需要接受一个列表参数,例如
(list, id) => {}
Right now the function is only accepting a single argument, when it asks for two!
You need to accept a list argument, such as
(list, id) => {}
看看上面的描述,看起来调用应该是:
关键是因为您传递的是一个需要
Func
的Action
,所以调用者(最有可能)是将是将Func
传递到您的Action
中。因此,您只需指定如何将Func
应用于传入的序列(如果我正确读取原型)。Just looking at the description above, it looks like the call should be:
The key is since you are passing an
Action
that takes aFunc
, the caller is (most likely) going to be the one passing thatFunc
into yourAction
. So you just specify how thatFunc
is applied to the sequence passed in (if I'm reading the prototype correctly).