gpt4 book ai didi

c# - 在执行之前传递 lambda 表达式的方法参数类型

转载 作者:太空狗 更新时间:2023-10-30 01:08:12 24 4
gpt4 key购买 nike

我正在尝试将一些基于接口(interface)的抽象改造为遗留代码,作为依赖注入(inject)的初步步骤。遗留代码包含我正在努力封装的 lambda 用法。这是现有的 lambda 用法:

private void MethodAaa(EntityA a, EntityB a, int someInt) {...}

private void MethodBbb(DateTime date, EntityA e) {...}


_commandObjectFromThirdPartyLibrary.Execute(() => MethodAaa(a, b, c));

_commandObjectFromThirdPartyLibrary.Execute(() => MethodBbb(d, e));

我希望通过一个通用的基类方法来路由 lamda 执行,如下所示:

base.CommonExecute( () => MethodAaa(a, b, c) );
base.CommonExecute( () => MethodBbb(d, e) );

base.CommonExecute( Action<???> lamdaExpression )
{
_commandObjectFromThirdPartyLibrary.Execute( lamdaExpression );
}

有人可以举例说明如何正确声明 base.CommonExecute(?) 吗?

最佳答案

我没有发现使用 non-generic version of the Action delegate 有什么问题:

base.CommonExecute(Action lambdaExpression )
{
_commandObjectFromThirdPartyLibrary.Execute( lambdaExpression );
}

关于c# - 在执行之前传递 lambda 表达式的方法参数类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10284373/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com