使用条件表达式选择lambda表达式

时间:2016-09-05 05:26:49

标签: c#

我想使用条件表达式来选择lambda表达式,如:

xxxx.UsingFactory(
hasProofing? ( ()=>new ProofingA() ) : ( () => new ProofingB() )
);

但是,它告诉我错误。所以,如果我想做这件事,我该怎么做。

错误明细:

  

'lambda expression'和'lambda之间没有隐式转换   表达

1 个答案:

答案 0 :(得分:2)

您需要显式地投射至少一个lambdas。例如,如果它只是Action,那么您可以使用以下内容:

xxxx.UsingFactory(
    hasProofing ? (Action)(() => new ProofingA()) : () => new ProofingB()
);