How can I refactor out the required else clause?

后端 未结 6 476
春和景丽
春和景丽 2021-01-12 09:13

I have a C# method that looks a bit like this:

bool Eval() {
  // do some work
  if (conditionA) {
     // do some work
     if (conditionB) {
       // do s         


        
6条回答
  •  余生分开走
    2021-01-12 10:08

    module Condition =
      type ConditionBuilder() =
        member x.Bind(v, f) = if v then f() else false
        member x.Return(v) = v
      let condition = ConditionBuilder()
    
    open Condition
    
    let eval() =
      condition {
        // do some work
        do! conditionA
        // do some work
        do! conditionB
        // do some work
        do! conditionC
        return true
      }
    

提交回复
热议问题