Heim > Backend-Entwicklung > C++ > Wie erreicht C# eine ähnliche Funktionalität wie das „Friend'-Schlüsselwort von C für den kontrollierten Zugriff auf private Mitglieder?

Wie erreicht C# eine ähnliche Funktionalität wie das „Friend'-Schlüsselwort von C für den kontrollierten Zugriff auf private Mitglieder?

Susan Sarandon
Freigeben: 2024-12-28 18:46:10
Original
921 Leute haben es durchsucht

How Does C# Achieve Functionality Similar to C  's

Friend-Schlüsselwort in C#

In der objektorientierten Programmierung bietet das „Friend“-Schlüsselwort privaten Klassenmitgliedern kontrollierten Zugriff auf bestimmte Klassen. Während C das Schlüsselwort „friend“ anbietet, fehlt in C# ein direktes Äquivalent für diese Funktion.

Alternative: InternalsVisibleTo

C# verwendet das Attribut „InternalsVisibleTo“, um einen eingeschränkten Zugriff auf private zu erreichen Mitglieder, hauptsächlich zu Testzwecken. Dieses Attribut kennzeichnet Assemblys oder Namespaces als vertrauenswürdig und ermöglicht ihnen den Zugriff auf interne Mitglieder, die ansonsten vor externem Code verborgen bleiben.

Beispiel

Betrachten Sie das folgende Beispiel in AssemblyInfo.cs :

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

Dieses Attribut macht die Assembly für die „OtherAssembly“ zugänglich. Auf alle Methoden oder Eigenschaften, die innerhalb der Assembly als intern markiert sind, kann jetzt über „OtherAssembly“ zugegriffen werden.

Verwendung beim Testen

Das InternalsVisibleTo-Attribut erweist sich beim Unit-Testen als besonders nützlich Szenarien. Durch Markieren einer Assembly als InternalsVisibleTo für die Testassembly werden private Member zu Testzwecken zugänglich, bleiben aber vor anderem externen Code verborgen.

Überlegungen

Während InternalsVisibleTo einen Mechanismus bereitstellt Für den kontrollierten Zugriff unterscheidet es sich in mehreren Punkten vom C-Schlüsselwort „friend“:

  • Es erfordert eine explizite Deklaration in AssemblyInfo.cs.
  • Gilt für Assemblys und nicht für einzelne Klassen.
  • Es ermöglicht nicht den Zugriff für alle privaten Mitglieder; Es gewährt nur internen Mitgliedern Zugriff.

Das obige ist der detaillierte Inhalt vonWie erreicht C# eine ähnliche Funktionalität wie das „Friend'-Schlüsselwort von C 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