[英]Access level of property in Private Class
對於私有類,我應該將我的財產聲明為“公開”還是“朋友”(在C#中為內部)? 除其父類外,其他任何類都無法訪問“我的私人班級”。
通常,請嘗試保持封裝完好無損。 您的班級之間的關系應基於“需要知道”。
由於我不熟悉您的應用程序設計,因此我可以簡化一下,但是我會問自己以下問題:
父類是唯一需要了解子類的類嗎? 如果是這樣,它應該是private
。
如果不是,是否需要了解子類的所有其他實體都在同一項目中? 如果是這樣,它應該是internal
。
如果項目外部有需要了解子類的實體,則它應該是public
。
至於屬性。 如果您決定將子類設為private
,則將這些屬性public
是沒有用的。
可以擁有該類實例的唯一對象是父類,該父類位於同一項目中,因此, internal
對於屬性來說應該足夠了。
注意
C#沒有friend
修飾符。 取而代之的是,您可以使用internal
,或The-like-yest-less-elegant選項: InternalsVisibleTo
由於您的班級(嵌套班級)是private
因此唯一可以訪問它的班級是其容器(基類或父班級)。 在這種情況下, public
或internal
(VB中的Friend
)沒有任何區別,因為唯一可以訪問嵌套類的人是它的父級。 通常,如果有一天您想將access修飾符更改為public
那么現在就可以預見它,並在internal
和public
之間進行選擇。 這很簡單,如果您只想在嵌套類的成員定義的程序集中看到嵌套類的成員,則使用internal
否則考慮使用public
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.