我正在使用论证:[<Out>] message : string
但是当我试图设置它时:消息&lt; - “起始位置没有数字”
我收到错误,因为邮件不可变。如何列出论点?
答案 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 ;;