簡體   English   中英

私有類中的屬性訪問級別

[英]Access level of property in Private Class

對於私有類,我應該將我的財產聲明為“公開”還是“朋友”(在C#中為內部)? 除其父類外,其他任何類都無法訪問“我的私人班級”。

通常,請嘗試保持封裝完好無損。 您的班級之間的關系應基於“需要知道”。

由於我不熟悉您的應用程序設計,因此我可以簡化一下,但是我會問自己以下問題:

  • 父類是唯一需要了解子類的類嗎? 如果是這樣,它應該是private

  • 如果不是,是否需要了解子類的所有其他實體都在同一項目中? 如果是這樣,它應該是internal

  • 如果項目外部有需要了解子類的實體,則它應該是public

至於屬性。 如果您決定將子類設為private ,則將這些屬性public是沒有用的。
可以擁有該類實例的唯一對象是父類,該父類位於同一項目中,因此, internal對於屬性來說應該足夠了。

注意
C#沒有friend修飾符。 取而代之的是,您可以使用internal ,或The-like-yest-less-elegant選項: InternalsVisibleTo

由於您的班級(嵌套班級)是private因此唯一可以訪問它的班級是其容器(基類或父班級)。 在這種情況下, publicinternal (VB中的Friend )沒有任何區別,因為唯一可以訪問嵌套類的人是它的父級。 通常,如果有一天您想將access修飾符更改為public那么現在就可以預見它,並在internalpublic之間進行選擇。 這很簡單,如果您只想在嵌套類的成員定義的程序集中看到嵌套類的成員,則使用internal否則考慮使用public

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM