5

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

我有一种感觉,它们的实现方式相同,但含义不同。

4

3 回答 3

13

可以internal从同一 .NET 程序集中的任何类型(或函数)访问方法。只能从声明它的类型访问方法
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
于 2011-05-18T02:48:56.170 回答
3

internal 与 public 相同,不同之处在于它仅在它所在的程序集内可见。 Private 仅在声明类型内可见。

于 2011-05-19T03:58:39.210 回答
0

内部实例可以在同一个程序集中访问,而私有实例只能在定义类中访问。

于 2011-06-29T02:54:16.343 回答