内部和私人之间有什么区别

时间:2011-05-18 02:44:34

标签: oop f# private internal

在F#中,内部方法和私有方法之间有什么区别。

我觉得它们的实现方式相同,但意味着不同。

3 个答案:

答案 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)

可以在同一个程序集中访问

内部 实例,而 私有 实例可以“仅”访问在定义类中。