如何设置[<out>]参数?</out>

时间:2011-10-24 10:12:39

标签: f#

我正在使用论证:[<Out>] message : string

但是当我试图设置它时:消息&lt; - “起始位置没有数字”

我收到错误,因为邮件不可变。如何列出论点?

2 个答案:

答案 0 :(得分:6)

使用类型byref<string>和属性[<Out>]公开方法参数,并使用address-of operator &作为参数的可变值:

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

答案 1 :(得分:0)

输出参数就像参考 - 您需要像这样使用:=(取自MSDN文档)

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