Zugriffsmodifikator (Access Modifier) in C#

1- Modifier im CSharp

Die access modifiers im CSharp bestimmt den Zugang (der Umfang) in die Database der Felder, der Methode, des Konstructor (Constructor) oder der Klasse 

Es gibt 5 Type zur access modifiers im  CSharp:
  1. private
  2. protected
  3. internal
  4. protected internal
  5. public

2- Die Überblick über access modifier

Modifier Die Beziehung
private Der Zugang wird in der Bereich von der Definition von Class begrenzt. Das ist der default-Zugangtyp wenn nicht bestimmt
protected Der Zugang wird in der Bereich von der Definition von Class begrenzt und alle Klasse, die von der Klasse erben
internal Der Zugang wird in der Bereich von Assembly vom aktuellen Projekt
protected internal Der Zugang wird in der Bereich von Assembly und in der Definitionsklasse oder die SubKlasse
public Keine Begrenzung bei dem Zugang zu der veröffentlichen Mitglieder (public)
Die folgende Tabelle bringt Ihnen eine Überblick über die Benutzung vom access modifier.
  Gleiches Assembly Anders Assembly
In der Definitionsklasse? In der Sub-Klasse Außer der Definitionsklasse, außer der Sub-Klasse In der Sub-Klasse Außer Sub-Klasse
private Y        
protected Y Y   Y  
internal Y Y Y    
protected internal Y Y Y    
public Y Y Y Y Y
Sie können durch die folgenden Beispiel mehr detailiert verstehen

3- private access modifier

private access modifier erlaubt nur den Zugang in der internen Klasse
Sie können in die private Miglieder außer der Klasse, die die Mitglieder definiert zugehen. CSharp meldet den Fehler bei der Zeitpunkt von der Klasse-Kompilier

4- private constructor

Der Constructor, die Methode, der Feld werden als die Mitglieder in der Klasse genannt
Wenn Sie eine Klasse erstellen und einen privaten Constructor haben, können Sie ein Objekt des Klasse aus diesen  private constructor vom außen nicht erstellen. Sehen Sie das folgende Beispiel

5- protected access modifier

protected access modifier kann innerhalb  package, oder außer vom  package zugreifen aber durch die Erben
protected access modifier sind nur für field, method und  constructor angewendet. Er kann nicht für die Klasse  (class, interface, ..) angewendet werden.

6- internal access modifier

internal ist der Zugang für die Internen, es wird in einem Assembly beschränkt

Ein Assembly ist ein Produkt zur Kompilierung Ihrer Code. Es ist normalerweise ein DLL, aber EXE kann auch ein assembly sein. Es ist die kleinste Einheit der Implementierung alles Projekt .NET .

Assembly enthaltet konkret die Code .NET nach MSIL (Microsoft Intermediate language ), die zur Computer Code (Native code) kompiliert wird ("JITted" - durch den Kompiler Just-In-Time kompiliert wird) in dem ersten Implementation im PC. Das ist die kompilierte Code , die in Assembly speichert und zur nächsten Aufruf benutzt wird

7- protected internal access modifier

Der Zugang  protected internal ist die Verbindung zwischen den Zugang  protected und  internal. Wenn ein Mitglieder der Klasse den Zugang hat, können Sie in diesen Mitglieder in der Klasse, die sie oder die Sub-Klasse definiert hat und in einer gleichen Assembly liegen 

8- public access modifier

public access modifier ist  starkste und in allen Orten zugreifbar. Er hat den breitsten Zugangsumfang im Vergleich zu anderen modifier 

9- der Zugang und die Inheritance

Im  CSharp können Sie eine Methode von der Vater-Klasse durch eine Methode überschreiben (override), die den gleichen Name, den gleichen Parameter, den gleichen Rückgabestyp bei der Subklasse hat. Allerdings dürfen Sie ihren Zugang (access modifier) nicht ändern
Allerdings können Sie eine Methode mit dem gleichen Name, dem gleichen Parameter, dem gleichen Rückgabetyp aber den verschiedenen Zugang bei der Benutzung vom Schlüsselwort new erstellen, in der Praxis ist das eine andere Methode, die sich den Vater-Klasse unterscheidet
Der Unterschied zwischen override und  new wird im Unterlagen  "Die Inheritance und Polymorphie im CSharp" erklärt. Sie können bei... schauen
  • TODO Link? 10337

View more categories: