首页 > 解决方案 > 多参数计算表达式自定义操作

问题描述

我正在为 C4 模型图创建 DSL。第一次尝试就在这里, 我认为将软件概念和图表分开会更有意义。这意味着只需要在创建图表时分配画布上的位置。

因此,当我尝试将位置添加到自定义操作参数时,我无法弄清楚如何在计算表达式中使用它。

新的构建器如下所示:

type SystemLandscapeDiagramBuilder internal (scope, desc, size) =
    member __.Yield(_) : SystemLandscapeDiagram = 
        SystemLandscapeDiagram.init scope desc size

    [<CustomOperation("user")>]
    member __.User(diagram, user, pos) : SystemLandscapeDiagram =
        diagram |> SystemLandscapeDiagram.addPerson user pos

编译器错误是仅当计算表达式构建器定义了“For”方法时,才可以使用此控制构造

是否可以有多个参数?关于我做错了什么的想法?

标签: f#computation-expression

解决方案


推荐阅读