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:
Um dies zu erreichen, würden Sie das folgende Attribut in die AssemblyInfo.cs-Datei von einfügen KlasseA:
[assembly: InternalsVisibleTo("TesterAssembly")]
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; } }
Tester.cs
using ClassAAssembly; public class Tester { public void Test() { // Access private member through InternalsVisibleTo var instance = new ClassA(); instance._privateMember = 10; } }
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!