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

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

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

【问题讨论】:

标签: oop f# private internal


【解决方案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】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-05-17
        • 2012-06-13
        • 2018-08-19
        • 1970-01-01
        • 1970-01-01
        • 2020-06-17
        • 1970-01-01
        • 2017-02-10
        相关资源
        最近更新 更多