Heim > Backend-Entwicklung > C++ > Wie erreicht C# die Funktionalität des C-Schlüsselworts „friend' für den kontrollierten Zugriff auf private Mitglieder?

Wie erreicht C# die Funktionalität des C-Schlüsselworts „friend' für den kontrollierten Zugriff auf private Mitglieder?

Barbara Streisand
Freigeben: 2024-12-27 06:41:09
Original
901 Leute haben es durchsucht

How Does C# Achieve the Functionality of C  's

Freund in C und seine Abwesenheit in C#

In C gewährt das Schlüsselwort „friend“ privaten Mitgliedern einer Klasse Zugriff auf externe Klassen. Dies ermöglicht den kontrollierten Austausch privater Informationen, ohne die Kapselung zu beeinträchtigen. Dieses Konzept ist jedoch nicht direkt in C# implementiert.

Überbrückung der Lücke: InternalsVisibleTo

C# bietet ein Attribut namens InternalsVisibleTo als engste Annäherung an „friend“. Es ermöglicht einer Assembly den Zugriff auf die internen Mitglieder (einschließlich privater Mitglieder) einer anderen Assembly. Dies bietet eine eingeschränkte Form des kontrollierten Zugriffs.

Stellen Sie sich das folgende Szenario vor:

  • Sie haben eine Klasse namens ClassA mit privaten Mitgliedern.
  • Sie möchten eine Testklasse , Tester, um auf diese privaten Mitglieder zuzugreifen.

Um dies zu erreichen, würden Sie das folgende Attribut in die AssemblyInfo.cs-Datei von einfügen KlasseA:

[assembly: InternalsVisibleTo("TesterAssembly")]
Nach dem Login kopieren

Ersetzen Sie „TesterAssembly“ durch den Namen der Assembly, die die Tester-Klasse enthält. Dadurch gewähren Sie TesterAssembly Zugriff auf die internen Mitglieder von ClassA.

Beispielverwendung

Um zu veranschaulichen, wie dies funktioniert, hier ein einfaches Beispiel Beispiel:

ClassA.cs

public class ClassA
{
    private int _privateMember;

    public int PublicMember { get; set; }
}
Nach dem Login kopieren

Tester.cs

using ClassAAssembly;

public class Tester
{
    public void Test()
    {
        // Access private member through InternalsVisibleTo
        var instance = new ClassA();
        instance._privateMember = 10;
    }
}
Nach dem Login kopieren

Durch Anwenden des InternalsVisibleTo-Attributs Sie können die Zugänglichkeit interner Mitglieder (sogar privater Mitglieder) auf Assembly-Ebene steuern und so verwaltete Codetests ermöglichen, ohne sensible Daten nach außen preiszugeben Verbraucher.

Das obige ist der detaillierte Inhalt vonWie erreicht C# die Funktionalität des C-Schlüsselworts „friend' für den kontrollierten Zugriff auf private Mitglieder?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage