Heim >Backend-Entwicklung >C++ >Wie erreicht C# eine Funktionalität, die dem „Friend'-Schlüsselwort von C ähnelt?

Wie erreicht C# eine Funktionalität, die dem „Friend'-Schlüsselwort von C ähnelt?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-29 17:24:18577Durchsuche

How Does C# Achieve Functionality Similar to C  's

Entsprechung des Schlüsselworts „Freund“ in C#

In C gewährt das Schlüsselwort „Freund“ privaten Mitgliedern einer Klasse Zugriff auf eine andere Klasse. In C# gibt es kein direktes Äquivalent, aber das „InternalsVisibleTo“-Attribut bietet eingeschränkten Zugriff zu Testzwecken.

Verwendung des „InternalsVisibleTo“-Attributs

Das „InternalsVisibleTo“-Attribut Das Attribut wird in der Datei AssemblyInfo.cs innerhalb jeder Assembly platziert. Sie gibt an, welche anderen Assemblys auf ihre internen Mitglieder zugreifen dürfen, einschließlich privater Mitglieder.

Beispiel

Um der Tester-Klasse den Zugriff auf private Mitglieder einer anderen Klasse zu ermöglichen:

// AssemblyInfo.cs
[assembly: InternalsVisibleTo("TesterAssembly")]

Beachten Sie, dass „TesterAssembly“ der Name der Assembly sein muss, die den Tester enthält Klasse.

Einschränkungen

„InternalsVisibleTo“ ist kein echtes Äquivalent des Schlüsselworts „friend“ und weist mehrere Einschränkungen auf:

  • Nur Interne Mitglieder werden offengelegt, keine privaten Mitglieder.
  • Es kann nur für Assemblys verwendet werden, nicht Klassen.
  • Es gewährt keinen Zugriff auf geerbte private Mitglieder.
  • Es ist nur für Testzwecke gedacht und sollte nicht für andere Szenarien verwendet werden.

Das obige ist der detaillierte Inhalt vonWie erreicht C# eine Funktionalität, die dem „Friend'-Schlüsselwort von C ähnelt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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