F# 避免使用;可变的;变量调用带有byref(out in C#)参数的方法?
所以我在C#上这个课: 我想用F#来消耗它 不幸的是,我不得不使用一些黑客,例如: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.
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()