Klassenmitglieder

Definition - Was bedeutet Klassenmitglieder?

Klassenmitglieder in C # sind die Mitglieder einer Klasse, die die Daten und das Verhalten einer Klasse darstellen.

Klassenmitglieder sind Mitglieder, die in der Klasse deklariert sind, und alle Mitglieder (außer Konstruktoren und Destruktoren), die in allen Klassen in ihrer Vererbungshierarchie deklariert sind.

Es gibt folgende Arten von Klassenmitgliedern:

  • Konstanten, die konstante Werte darstellen
  • Felder, die Variablen darstellen
  • Methoden, die Dienste wie Berechnungen oder andere Aktionen für ihre Mitglieder bereitstellen
  • Eigenschaften, die die Klassenmerkmale definieren und Aktionen zum Abrufen und Ändern dieser Funktionen enthalten
  • Ereignisse, die für die Kommunikation zwischen verschiedenen Klassen / Objekten generiert werden
  • Indexer, die beim Zugriff auf Klasseninstanzen helfen, die Arrays ähneln
  • Operatoren, die die Semantik definieren, wenn sie in Ausdrücken mit Klasseninstanzen verwendet werden
  • Instanzkonstruktoren zum Initialisieren von Mitgliedern von Klasseninstanzen
  • Statischer Konstruktor zum Initialisieren der Klasse selbst
  • Destruktoren zum Ausführen von Aktionen, die ausgeführt werden müssen, bevor Klasseninstanzen verworfen werden
  • Typen, die für die Klasse lokal sind (verschachtelter Typ)

Klassenmitglieder können einzeln mit einer der folgenden Zugänglichkeiten angegeben werden:

  • Öffentlich - Zugriff auf jeden Code innerhalb der aktuellen oder externen Assembly
  • Geschützt - Zugriff innerhalb derselben Klasse oder ihrer abgeleiteten Klasse
  • Privat - Zugänglichkeit innerhalb derselben Klasse
  • intern - Zugänglichkeit innerhalb der aktuellen Baugruppe
  • geschützte interne Zugänglichkeit innerhalb der aktuellen Assembly oder Klassen, die von der enthaltenen Klasse abgeleitet sind

Im Gegensatz zu Java, wo die Standardzugriffsstufe eines Klassenmitglieds öffentlich ist, ist es in C # privat.

Technische.me erklärt die Mitglieder der Klasse

Klassenmitglieder werden in Konstruktoren initialisiert, die mit unterschiedlichen Signaturen überladen werden können. Für Klassen ohne Konstruktor wird ein Standardkonstruktor generiert, der die Klassenmitglieder (auf Standardwerte) initialisiert.

Im Gegensatz zu C ++ erlaubt C # einer Klasse, nur von einer Basisklasse zu erben. Eine Klasse kann jedoch von mehreren Schnittstellen abgeleitet werden, aber alle Schnittstellenmitglieder müssen implementiert werden. Diese Mitglieder der Klassenimplementierungsschnittstelle (n) sind standardmäßig öffentlich sichtbar und können keine anderen Zugriffsmodifikatoren haben.

Alle Mitglieder der Basisklasse mit Ausnahme der Konstruktoren werden in der abgeleiteten Klasse geerbt. Abgeleitete Klassenmitglieder können das Basisklassenmitglied ausblenden, für das das Schlüsselwort 'new' verwendet werden muss, um anzuzeigen, dass das Basismitglied nicht überschrieben wird, und Compilerwarnungen vermeiden.

Ein statisches Klassenmitglied ist ein Mitglied der statischen Klasse (das weder instanziiert noch geerbt werden kann), auf das nur über den Klassennamen zugegriffen werden kann. Im Gegensatz zum Instanzmitglied verfügt es über eine Kopie des statischen Mitglieds, die vor dem ersten Zugriff und vor dem statischen Konstruktor (falls vorhanden) initialisiert wird.

Mitglieder der abstrakten Klasse verhindern die direkte Instanziierung und müssen in einer abgeleiteten Klasse implementiert werden, damit sie verwendet werden kann. Um zu verhindern, dass eine Klasse oder Klassenmitglieder erben, können die Klasse oder ihre Mitglieder als "versiegelt" deklariert werden. Klassenmitglieder können als Konstante zur Kompilierungszeit mit dem Modifikator 'const' und als Laufzeitkonstanten mit dem Modifikator 'readonly' verwendet werden.

Beim Deklarieren von Klassenmitgliedern in einem neuen Deklarationsbereich gelten die folgenden Regeln:

  • Mit Ausnahme von Konstruktoren und Destruktoren müssen alle anderen Mitglieder einen anderen Namen als den Klassennamen haben
  • Die Namen der Konstanten, Felder, Eigenschaften, Ereignisse oder Typen müssen innerhalb der Klasse eindeutig sein
  • Mehrere Methoden können mit demselben Namen deklariert werden, sollten sich jedoch in ihrer Signatur unterscheiden
  • Die Signatur von Indexer und Operator muss unter den in der Klasse deklarierten eindeutig sein
  • Klassenmitglieder dürfen keine reservierten Signaturen haben, bei denen es sich um Mitgliedsnamen handelt, die für Eigenschaften, Ereignisse, Indexer und 'Finalisieren' reserviert sind.
  • Der Typ eines Mitglieds, der Parameter und der Rückgabewert einer Methode, eines Delegaten oder eines Indexers sollten als Mitglied selbst zugänglich sein
  • Benutzerdefinierte Operatoren müssen als öffentlich zugänglich sein

Diese Definition wurde im Kontext von C # geschrieben