内部和私人有啥区别

Posted

技术标签:

【中文标题】内部和私人有啥区别【英文标题】:what is the difference between internal and private内部和私人有什么区别 【发布时间】:2011-08-27 17:10:21 【问题描述】:

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

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

【问题讨论】:

我觉得应该和C#没有区别***.com/questions/3813485/… 【参考方案1】:

可以从同一 .NET 程序集中的任何类型(或函数)访问 internal 方法。private 方法只能从它被声明的类型访问。

这里有一个简单的 sn-p 显示区别:

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

【讨论】:

【参考方案2】:

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

【讨论】:

【参考方案3】:

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

【讨论】:

以上是关于内部和私人有啥区别的主要内容,如果未能解决你的问题,请参考以下文章

参数内部和块内部的短/字节有啥区别[重复]

“私有”和“受保护的内部”有啥区别?

静态构造函数、内部构造函数和公共构造函数有啥区别?

内部设置属性有啥区别[重复]

C#中访问说明符保护和内部保护有啥区别

在循环内部或外部使用 unsafe 有啥区别吗?