簡體   English   中英

在執行之前傳遞lambda表達式的方法參數類型

[英]Method parameter type to pass a lambda expression prior to execute

我試圖將一些基於接口的抽象改進為遺留代碼,作為依賴注入的初步步驟。 遺留代碼包含我正在努力封裝的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(?)的示例嗎?

我沒有看到使用Action代理非泛型版本有什么問題:

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

非泛型版本的Action是void-void one:

public delegate void Action();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM