2011-10-24 48 views
4

我使用了说法:[<Out>] message : string如何设置[<Out>]参数?

但是,当我试图将其设置:消息< - “有开始位置没有人物”

我得到错误,因为消息不可变的。如何阐明论点?

+0

作为一个建议,不是说你不能得到OUT参数工作,但尝试使用一个元组,而不是返回你需要你发挥作用的所有值。 – Alex

回答

6

揭露方法参数与byref<string>类型和属性[<Out>]和作为参数使用与地址的一个可变值运营商&

open System.Runtime.InteropServices 

let mutable msg = "abc" 

let outmsg ([<Out>]message : byref<string>) = 
    message <- "xyz" 

msg <- "test" 
outmsg(&msg) 
msg;; 

val mutable msg : string = "xyz" 
val outmsg : byref<string> -> unit 
0

输出参数是像REF - 你需要使用:=这样(从MSDN文档截取)

open System.Runtime.InteropServices;; 
type dummy() = 
    member this.MyMethod([<param: Out>] x : ref<int>) = x := 10 ;;