首頁 > 後端開發 > C++ > C# 如何實現類似 C 的「Friend」關鍵字對私人成員的受控存取的功能?

C# 如何實現類似 C 的「Friend」關鍵字對私人成員的受控存取的功能?

Susan Sarandon
發布: 2024-12-28 18:46:10
原創
935 人瀏覽過

How Does C# Achieve Functionality Similar to C  's

C# 中的Friend 關鍵字

在物件導向程式設計中,「friend」關鍵字提供對某些類別的私有類別成員的受控訪問。雖然 C 提供了「friend」關鍵字,但 C# 缺乏此功能的直接等效項。

替代方案:InternalsVisibleTo

C# 利用 InternalsVisibleTo 屬性來實現對 private 的有限存取成員,主要用於測試目的。此屬性將組件或命名空間指定為受信任,從而允許它們存取對外部程式碼隱藏的內部成員。

範例

請考慮 AssemblyInfo.cs 中的以下範例:

[assembly: InternalsVisibleTo("OtherAssembly")]
登入後複製

此屬性使程式集可供「OtherAssembly」存取。現在可以從「OtherAssembly」存取程式集中標記為內部的任何方法或屬性。

測試中的使用

InternalsVisibleTo 屬性在單元測試中特別有用情境。透過將程序集標記為測試程序集的 InternalsVisibleTo,私有成員可以出於測試目的而訪問,同時對其他外部程式碼保持隱藏。

注意事項

雖然InternalsVisibleTo 提供了一種機制對於受控訪問,它與C“friend”關鍵字有幾個不同之處方式:

  • 它需要在AssemblyInfo.cs 中明確宣告。
  • 它適用於程序集而不是單一類別。
  • 它不允許存取所有私有成員;它只授予內部成員存取權。

以上是C# 如何實現類似 C 的「Friend」關鍵字對私人成員的受控存取的功能?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板