【发布时间】:2020-08-12 20:25:44
【问题描述】:
如何合并多个 Func 委托?
假设我有两个代表
Func<bool> MovementButtonHold() => () => _inputSystem.MoveButtonHold
Func<bool> IsFreeAhead() => () => _TPG.IsFreeAhead();
有没有办法将这两个代表合并为一个Func<bool> 代表?
类似:
和
Func<bool> delegate1 = MovementButtonHold() && IsFreeAhead();
或者
Func<bool> delegate2 = MovementButtonHold() || IsFreeAhead();
【问题讨论】:
-
您只是缺少开头的
() =>。 -
您的初始代表也未正确定义。他们应该是
Func<bool> MovementButtonHold = () => _inputSystem.MoveButtonHold;和Func<bool> IsFreeAhead = () => _TPG.IsFreeAhead(); -
@juharr 这取决于它们是否被定义为方法。 (最近的语法糖)
-
@Nkosi 在这种情况下,将它们组合起来需要
() => MovementButtonHold()() && IsFreeAhead()(); -
啊,我明白你的意思了。无论哪种方式,OP 都需要提供更多细节来阐明他们真正想要什么。