小编Sve*_*inz的帖子

如何存储方法并在以后为它提供多个参数

我试图跟踪值的用法,因此将生成所述值和输入(也被包装)的方法包装到一个称为Dataslot的类中。我不知道我会预先包装什么方法和什么值,所以我尝试了多种方式编写此代码,并认为下面的代码可以工作。但是let mutable value = funk unpack似乎并不会导致将funk beeing识别为一个函数,因此解压缩方法似乎是错误的方法,我如何使它起作用?

type Dataslot(funk, input:Dataslot[]) as self =

    let mutable reffunk= funk
    let refinput=input
    let unpack= for inpu in refinput do inpu.Value
    let mutable value = funk unpack
    let uses= ResizeArray<Dataslot>[]
    let get1()=
       value
    let mutable get0=fun()->get1()
    let get2()=
       value<-reffunk unpack
       get0<-fun()->get1()
       value
    do for inpu in refinput do inpu.Subscribe(self)
    member x.setfunk(fu)=
        reffunk<-fu
        for u in uses do
            u.Changed
    member x.setinput(index:int, inp:Dataslot)=
        refinput.[index].Unsubscribe(self)
        refinput.[index]=inp
        refinput.[index].Subscribe(self)
        for u in uses do
            u.Changed
    member x.Value …
Run Code Online (Sandbox Code Playgroud)

parameters f#

1
推荐指数
1
解决办法
91
查看次数

标签 统计

f# ×1

parameters ×1