定义表达式树的最简单方法?

问题描述 投票:0回答:1

请考虑以下三行代码是单元测试的一部分:

var order = new NewOrderSingleTestMessages().ValidMessage;

Expression<Func<ExecutionReport, bool>> expectedReply = r => r.OrderID.Obj != string.Empty && 
                                                             r.ClOrdID.Obj == order.ClOrdID.Obj &&
                                                             r.ExecID.Obj != string.Empty &&
                                                             r.ExecType.Obj == ExecType.NEW &&
                                                             r.OrdStatus.Obj == OrdStatus.NEW;
                                                             // a lot more conditions are required here!

// ...

processorMock.Verify(m => m.Process(It.Is(expectedReply), It.IsAny<SessionID>()), Times.Once);        

丑!将来还会有更多条件。我该如何以更清晰更清晰的方式重构它?

c# lambda refactoring expression-trees
1个回答
0
投票

嗯,我经常写返回的链接条件,例如:

© www.soinside.com 2019 - 2024. All rights reserved.