2

所以我在 C# 中有这个类:

public class Foo : IFoo {
    public bool TryConnect(out Status status) {
        ...
    }
}

我想用 F# 来消费它。

不幸的是,我不得不使用一些hackery,例如:

type FooService (foo : IFoo) =

    member x.Execute() =
        let mutable status = Unchecked.defaultof< ^Status>
        foo.TryConnect(&status) |> ignore
        (...do something with status...)

有没有办法在这里不使用“可变”?最后,我实际上根本没有使用第一个初始化值。

(我使用的是 F# 2.0,但如果您有仅适用于 F# 3.0 的提示,我会很高兴听到它们。)

谢谢

4

1 回答 1

5

out参数被自动元组化。所以,你可以这样做:

let res, status = foo.TryConnect()

有关详细信息,请参阅MSDN 上的按引用传递。

于 2012-08-21T14:25:57.383 回答