我想使用条件表达式来选择lambda表达式,如:
xxxx.UsingFactory(
hasProofing? ( ()=>new ProofingA() ) : ( () => new ProofingB() )
);
但是,它告诉我错误。所以,如果我想做这件事,我该怎么做。
错误明细:
'lambda expression'和'lambda之间没有隐式转换 表达
答案 0 :(得分:2)
您需要显式地投射至少一个lambdas。例如,如果它只是Action
,那么您可以使用以下内容:
xxxx.UsingFactory(
hasProofing ? (Action)(() => new ProofingA()) : () => new ProofingB()
);