【发布时间】:2018-04-23 20:07:38
【问题描述】:
我有一个以特定顺序运行特定代码块的 c# 方法。我想传递一个布尔参数:“IsRunningInReverse”,它将反转代码块的运行顺序?
我可以创建 2 个私有方法,以正常和反向顺序调用语句,但我想知道是否有更好的方法来完成此操作?
我正在考虑创建委托 (Action) 并将它们存储在一个列表中,然后布尔值“IsRunningInReverse”将确定我是以升序还是降序遍历列表,但我不知道那是最干净的解决方案。
任何意见将不胜感激。
谢谢!
【问题讨论】:
-
minimal reproducible example 在这里会很有帮助。
-
在 C#7.3 中,您可以将括号放在方法名称的前面,它会反向执行。这样做是为了简化某些 LINQ 表达式。以
e.(a.foo <= a)OrderBy为例。 -
@EdPlunkett 认真的吗?他们对 c# 9.0 有什么计划?也可以颠倒编写 lambda 表达式?这段代码对我来说似乎太难读了,我不确定这是因为我变老了,我更难学习新技巧,还是因为它只是,嗯,倒退。
-
谢谢!有那么一分钟,我以为我太老了,无法胜任这份工作:-)
-
@Pac0 你得反问他。