F# 避免使用;可变的;变量调用带有byref(out in C#)参数的方法?

F# 避免使用;可变的;变量调用带有byref(out in C#)参数的方法?,f#,pass-by-reference,c#-to-f#,f#-3.0,F#,Pass By Reference,C# To F#,F# 3.0,所以我在C#上这个课: 我想用F#来消耗它 不幸的是,我不得不使用一些黑客,例如: type FooService (foo : IFoo) = member x.Execute() = let mutable status = Unchecked.defaultof< ^Status> foo.TryConnect(&status) |> ignore (...do something with status.

所以我在C#上这个课:

我想用F#来消耗它

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

type FooService (foo : IFoo) =

    member x.Execute() =
        let mutable status = Unchecked.defaultof< ^Status>
        foo.TryConnect(&status) |> ignore
        (...do something with status...)
输入FooService(foo:IFoo)=
成员x.Execute()=
让可变状态=未选中。默认值<^status>
foo.TryConnect(&status)|>忽略
(…对身份做点什么…)
这里有没有不使用“可变”的方法?最后,我实际上根本没有使用第一个初始化值

(我正在使用F#2.0,但如果您有只适用于F#3.0的提示,我很乐意听到。)


谢谢

输出
参数会自动设置。因此,您可以:

let res, status = foo.TryConnect()

有关更多信息,请参见MSDN。

是否
让status=MyFoo.TryConnect
不工作?TryConnect返回bool,而不是status type对不起,我是指@Daniel在下面的回答中所说的。。。
let res, status = foo.TryConnect()