在F#中,内部方法和私有方法之间有什么区别。
我觉得它们的实现方式相同,但意味着不同。
答案 0 :(得分:10)
可以从同一.NET程序集中的任何类型(或函数)访问internal
方法
只能从声明它的类型访问private
方法。
以下是一个显示差异的简单代码段:
type A() =
member internal x.Foo = 1
type B() =
member private x.Foo = 1
let a = A()
let b = B()
a.Foo // Works fine (we're in the same project)
b.Foo // Error FS0491: 'Foo' is not defined
答案 1 :(得分:2)
internal与public相同,不同之处在于它仅在它被指定的程序集中可见.Private仅在声明类型中可见。
答案 2 :(得分:0)
内部 实例,而 私有 实例可以“仅”访问在定义类中。