为什么评估匹配表达式的多个分支?

时间:2015-10-04 00:47:23

标签: f# f#-3.0

我正在使用match表达式并获得与我预期的完全不同的结果。在我的情况下,wi.State = "Done"的值,所以我希望wi.Close()调用被执行,就是这样。然而,它运行它,然后运行_ ->全部匹配之后的语句。很明显,我误解了这些表达式应该如何工作所以我会理解任何指示。

workItemCollection.Cast<WorkItem>()
|> Seq.iter(fun wi ->
    wi.Open()
    match wi.State with
    | "Done"
    | "Removed" -> 
        wi.Close()
    | _ ->
        printfn "Closing %s ->  %i" iccmCallNumber wi.Id
        wi.State <- "Done"
        wi.History <- wi.History + "Closed by Iccm to Tfs integration"
        wi.Save())

0 个答案:

没有答案