C#-Äquivalent des Schlüsselworts „Friend“
In C können Sie das Schlüsselwort „Friend“ verwenden, um privaten Mitgliedern von Zugriff zu gewähren einer Klasse zu anderen Klassen. Diese Funktion wird jedoch in C# nicht direkt unterstützt. Stattdessen stellt das Attribut „InternalsVisibleTo“ ein teilweises Äquivalent für den Zugriff auf private Mitglieder über Baugruppen hinweg bereit.
So verwenden Sie „InternalsVisibleTo“
Um einer Klasse in einer anderen Baugruppe den Zugriff auf private Mitglieder zu ermöglichen, Sie können das Attribut „InternalsVisibleTo“ zum Assemblymanifest hinzufügen. In der Datei „AssemblyInfo.cs“ können Sie beispielsweise den folgenden Code verwenden:
[assembly: InternalsVisibleTo("OtherAssembly")]
Dieses Attribut macht die Interna Ihrer Assembly für die Assembly mit dem Namen „OtherAssembly“ sichtbar.
Beispiel
Betrachten Sie die folgende Klasse:
internal class TestClass { private int privateValue; }
In einer separaten Assembly können Sie eine Klasse erstellen, um auf den privaten Wert zuzugreifen:
public class TesterClass { public void DoSomething(TestClass instance) { // Set the value using reflection instance.GetType().GetField("privateValue", BindingFlags.NonPublic | BindingFlags.Instance).SetValue(instance, 10); } }
Durch die Verwendung von Reflection und dem InternalsVisibleTo-Attribut können Sie für bestimmte Szenarios, wie z. B. Tests, assemblyübergreifend auf private Mitglieder zugreifen.
Das obige ist der detaillierte Inhalt vonWie kann ich eine C#-Äquivalenz mit dem „Friend'-Schlüsselwort von C erreichen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!