gpt4 book ai didi

f# - 避免使用 "mutable"变量调用带有 byref(C# 中的 out)参数的方法?

转载 作者:行者123 更新时间:2023-12-02 22:32:14 26 4
gpt4 key购买 nike

所以我在 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 的提示,我将很乐意听取。)

谢谢

最佳答案

out 参数会自动进行二元化。所以,你可以这样做:

let res, status = foo.TryConnect()

有关详细信息,请参阅 Passing by Reference在 MSDN 上。

关于f# - 避免使用 "mutable"变量调用带有 byref(C# 中的 out)参数的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12056923/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com