487 Stimmen

Interne vs. private Zugangsmodifikatoren

Was ist der Unterschied zwischen dem internal y private Zugriffsmodifikatoren in C#?

609voto

explorer Punkte 10770

intern ist für den Assembler-Bereich (d.h. nur von Code in derselben .exe oder .dll zugänglich)

privat ist für den Geltungsbereich einer Klasse bestimmt (d. h. nur von Code in derselben Klasse aus zugänglich).

253voto

Vivek Punkte 4745

Nachstehend finden Sie eine Erklärung. Sie können diesen Link für weitere Details überprüfen - http://www.dotnetbull.com/2013/10/public-protected-private-internal-access-modifier-in-c.html

Privat: - Private Mitglieder sind nur innerhalb des eigenen Typs (eigene Klasse) zugänglich.

Intern: - Interne Mitglieder sind nur innerhalb der Baugruppe durch Vererbung (abgeleiteter Typ) oder durch Instanz der Klasse zugänglich.

enter image description here

Hinweis :

dotnetbull - was ist ein Zugriffsmodifikator in c#

79voto

SLaks Punkte 832502

internal Mitglieder sind für den gesamten Code in der Assembly sichtbar, in der sie deklariert sind.
(Und zu anderen Baugruppen, auf die mit der Option [InternalsVisibleTo] Attribut )

private Mitglieder sind nur für die deklarierende Klasse sichtbar. (einschließlich verschachtelter Klassen)

Eine äußere (nicht verschachtelte) Klasse kann nicht deklariert werden private da es keinen Bereich gibt, in dem es privat werden kann.

Um die Frage zu beantworten, die Sie vergessen haben zu stellen, protected Mitglieder sind wie private Mitglieder, sondern sind auch in allen Klassen sichtbar, die den deklarierenden Typ erben. (Aber nur bei einem Ausdruck von mindestens dem Typ der aktuellen Klasse)

11voto

Salik Punkte 398

Interne Mitglieder sind innerhalb der Baugruppe zugänglich (nur im selben Projekt)

private Mitglieder sind innerhalb der gleichen Klasse zugänglich

Beispiel für Anfänger

Es gibt 2 Projekte in einer Lösung (Projekt1, Projekt2) und Projekt1 hat einen Verweis auf Projekt2.

  • Öffentliche Methoden, die in Projekt2 geschrieben wurden, werden in Projekt2 und Projekt1 zugänglich sein.
  • Interne Methoden, die in Projekt2 geschrieben wurden, sind nur in Projekt2, nicht aber in Projekt1 zugänglich.
  • private Methode, die in Klasse1 von Projekt2 geschrieben wurde, wird nur für dieselbe Klasse zugänglich sein. Sie wird weder in anderen Klassen von Projekt 2 noch in Projekt 1 zugänglich sein.

9voto

Privat Mitglieder sind nur innerhalb des Körpers der Klasse oder der Struktur, in der sie deklariert sind, zugänglich.

Intern Typen oder Mitglieder sind nur innerhalb von Dateien in derselben Baugruppe zugänglich

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X