Frage

Was ist das Äquivalent eines 'Freund' Schlüsselwort in C Sharp?

Wie verwende ich das 'interne' Stichwort?

Ich habe gelesen, dass ‚internes‘ Stichwort ein Ersatz für ‚Freund‘ in C # ist.

Ich verwende eine DLL in meinem C # -Projekt, dass ich den Quellcode haben für und doch möchte ich nicht den vorhandenen Code ändern. Ich habe die Klasse geerbt und ich kann meine vererbten Klasse jede mögliche Weise möchte ich nutzen. Das Problem ist, dass die meisten der Code in der übergeordneten Klasse hat Methoden geschützt. Will einen Freund irgendwie mit ihm möglich machen, diesen geschützten Methoden für den Zugriff auf oder rufen Sie?

War es hilfreich?

Lösung

  1. Sie können das Stichwort Zugriffsmodifikator verwenden internal deklarieren eine Art oder Typ Element als zugänglich Code in derselben Baugruppe nur.

  2. Sie können die Verwendung InternalsVisibleToAttribute Klasse definiert in System.Rutime.CompilerServices eine Art zu erklären, wie zugänglich Code in derselben Baugruppe oder eine bestimmte Anordnung nur.

Sie verwenden, um die erste, wie Sie andere Zugriffsmodifikator solche wie private. Nämlich:

internal class MyClass {
    ...
}

Sie verwenden die zweite wie folgt:

[assembly:InternalsVisibleTo("MyFriendAssembly", PublicKey="...")]
internal class MyVisibleClass {
    ...
}

Beide können mit Recht das Äquivalent von friend in C # in Betracht gezogen werden.

Methoden, die sind protected sind bereits abgeleiteten Klassen zur Verfügung.

Andere Tipps

Nein, „intern“ ist nicht dasselbe wie „Freund“ (zumindest die C ++ ‚Freund‘)

Freund gibt an, dass diese Klasse von ONE, bestimmten Klasse nur zugänglich ist.
internes gibt an, dass diese Klasse von jeder Klasse in der Montage zugänglich ist.

1) Interne ist der C # equivelant des VB.NET 'Freundes' Schlüsselwort, wie Sie erraten haben (im Gegensatz zu einem Ersatz gegen)

2) Die Verwendung ist wie folgt

internal void Function() {}
internal Class Classname() {}
internal int myInt;
internal int MyProperty { get; set; }

3) Es, im Grunde ist ein Zugriffsmodifikator, die die Zugänglichkeit der Klasse / Funktion / vairiable / Eigenschaft legt fest, dass als internes markiert ist, als ob es die Versammlung öffentlich waren Kompilierungsstatus in und privaten zu anderen Baugruppen

Ihre Unterklasse in der Lage, die geschützten Mitglieder der Klasse zugreifen, die Sie erben.

Möchten Sie den Zugriff auf diese geschützten Mitglieder in eine andere Klasse geben?

Interne ist das Äquivalent von Freund. Eine geschützte Methode ist nur innerhalb der gleichen Klasse oder von einem inheritor. Wenn Sie versuchen, geschützte Methoden von einem inheritor aussetzen, können Sie sie in öffentlichen Methoden wickeln.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top