在C#中,允许以下内容:
class A {
private int i;
public int lol(A a) {
return a.i;
}
}
是否有可能在F#中做类似的事情?如果有,怎么样?如果没有,那么解决方法是什么?
我目前的课程类似于:
type Point() =
let mutable x = 0
let mutable y = 0
with
member ...
由于
答案 0 :(得分:3)
所以有几种不同的方法可以做到这一点
如果您只想要只读访问权限,则可以
type Point() =
let mutable x = 0
member __.X() = x
如果您不想隐藏变量,可以使用
member val X = 0 with get
答案 1 :(得分:2)
您可以使用val:
type A =
val mutable private i: int
new (n) = {i = n}
member x.lol (a: A) = a.i
let objA1 = A(2)
let objA2 = A(5)
printfn "%d" <| objA2.lol(objA1)
printfn "%d" <| objA1.lol(objA2)