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

Lyn*_*ite 5 oop f# private internal

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

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

Tom*_*cek 11

一种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
Run Code Online (Sandbox Code Playgroud)