C#中复杂的if / else问题的库/算法

时间:2011-01-16 23:06:55

标签: c# if-statement rule-engine

我必须实施问卷调查引擎,每个问题的答案最终会产生完全不同的结果。

所以,如果我们有10个问题,每个问题有10个答案,那么我们就有10个可能的10个问题。

这应该像脚本式AI我猜...

那么,我会用什么样的规则引擎或实现方法来处理这样的问题?

我猜这种算法有点过于简单了?

if (x==1)
  if (y==1)
  {
    if (z==1 || z==2)
      // do sth
    if (z==3)
      // do sth different
   }

感谢您提出任何建议。

1 个答案:

答案 0 :(得分:4)

有些库可用于实现这种形式的“规则引擎”。

例如,Windows Workflow Foundation允许通过FlowDecision activities和其他相关类确定基本规则。

其他替代方案是规则引擎,例如Drools.Net

话虽如此,对于像上面这样的简单例程,我建议尝试重构算法以避免许多标准。通过将其推入多种方法,您可以创建一系列更简单的干净条件。