Мне просто интересно, может ли кто-нибудь объяснить мне, как передавать ссылочные ячейки функциям, которые не являются членами класса. Я следил за страницей msdn ссылочные ячейки msdn
У меня есть следующий код:
let myint = ref 32
let mutable myint2 = 23
type addone() =
member t.myadd1func (x:int byref) =
x <- x + 1
let myadd1func (x:int byref) =
x <- x + 1
let adder = new addone()
adder.myadd1func myint
// myadd1func myint <---- this line does not compile
myadd1func &myint2 // <----- this line does though
printfn "%d" !myint
printfn "%d" myint2
Мой вопрос ... в чем принципиальная разница между вызовом, который я делаю методу "Myadd1func" в классе, и функцией "myadd1func", определенной после него?
Когда я пишу это, я предполагаю, что функция не любит, когда ей передаются ссылки на объекты .net, поскольку это может нарушить совместимость с другими компонентами IL ?? Я не против использования изменяемого значения, мне просто нравится понимать эти вещи.
Спасибо