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

C# 如何實現 C 的「friend」關鍵字對私有成員的受控存取的功能?

Barbara Streisand
發布: 2024-12-27 06:41:09
原創
900 人瀏覽過

How Does C# Achieve the Functionality of C  's

C 中的友元及其在C# 中的缺失

在C 中,「friend」關鍵字將類別的私有成員的存取權限授予外部類別。這允許在不影響封裝的情況下控制私人資訊的共享。然而,這個概念並沒有直接在 C# 中實現。

彌合差距:InternalsVisibleTo

C# 提供了一個名為 InternalsVisibleTo 的屬性,作為最接近「朋友」的屬性。它允許組件存取另一個組件的內部成員(包括私有成員)。這提供了有限形式的受控存取。

考慮以下場景:

  • 您有一個名為 ClassA 的類,其中包含私有成員。
  • 您想要一個測試類,測試人員,以存取這些私有成員。

要實現此目的,您可以將以下屬性放置在ClassA 的AssemblyInfo.cs 檔案:

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

將「TesterAssembly」替換為包含Tester 類別的程式集的名稱。透過這樣做,您將授予 TesterAssembly 對 ClassA 內部成員的存取權。

範例用法

為了說明其運作原理,這裡有一個簡單的範例例如:

ClassA.cs

public class ClassA
{
    private int _privateMember;

    public int PublicMember { get; set; }
}
登入後複製

Tester.cs

using ClassAAssembly;

public class Tester
{
    public void Test()
    {
        // Access private member through InternalsVisibleTo
        var instance = new ClassA();
        instance._privateMember = 10;
    }
}
登入後複製

透過應用InternalsVisibleTo 屬性,您可以在程式集層級控制內部成員(甚至私人成員)的可存取性,而無需進行託管程式碼測試向外部消費者公開敏感資料。

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

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