我正在编写一个小的查找应用程序,其中有一个方便的控制台,用于快速查询缓存以进行完整性检查等。
即
get SomeField=Blue
这会从缓存中获取与该过滤器匹配的所有对象。
我可以应用更多过滤器
get SomeField=Blue && SomeOtherField < 5
如果我决定支持 () 的,这会变得更复杂
在这里使用什么模式比较好?或者可能是一个可以接受字符串并为我标记它的组件?
例如,我想将以下内容分解为过滤器的子集
get ((field1=x || field1=y) && field2>x)
我能想到的唯一方法是正则表达式,而不是将子字符串传递给旨在创建特定过滤器的不同例程。 (即 AndEquals、OrEquals、AndGraterThan 等)
最佳答案
看看 IronPython。它很容易集成到 c# 应用程序中,并且已经支持所有标准过程语言结构。我在游戏引擎中使用它来在调试时对场景状态执行实时调整。
关于c# - c#中的 boolean 聚合模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4160756/