2011-05-18 37 views
3

在F#內部方法和私人方法之間有什麼區別?內部和私人之間有什麼區別

我有一種感覺,他們實施相同,但意味着不同的東西。

+1

我認爲它應該沒有什麼不同,從C#http://stackoverflow.com/questions/3813485/internal-vs-private-access-modifiers – 2011-05-18 04:52:20

回答

7

可以從同一個.NET程序集中的任何類型(或函數)訪問一個internal方法。
A 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 
2

內部是相同的公共,不同之處在於它只有它在delcared組件內可見私人僅聲明類型內可見。

0

內部實例可以在整個相同的組件進行訪問,而私人實例可以在限定類訪問「ONLY」。

相關問題