(0) exportieren Drucken
Alle erweitern
Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

class (C#-Referenz)

Klassen werden wie im folgenden Beispiel mit dem class-Schlüsselwort deklariert:

class TestClass
{
    // Methods, properties, fields, events, delegates 
    // and nested classes go here.
}

Nur einzel Vererbung ist in C# zulässig. Dies bedeutet, dass eine Implementierung nur von einer Basisklasse an eine Klasse vererbt werden kann. Eine Klasse kann jedoch mehr als eine Schnittstelle implementieren. In der folgenden Tabelle sind Beispiele für Klassenvererbung und Schnittstellenimplementierung aufgeführt:

Vererbung

Beispiel

Keine

class ClassA { }

Single

class DerivedClass: BaseClass { }

Keine, Implementierung von zwei Schnittstellen

class ImplClass: IFace1, IFace2 { }

Einfache, Implementierung einer Schnittstelle

class ImplDerivedClass: BaseClass, IFace1 { }

Die Klassen, die Sie direkt innerhalb eines Namespace deklarieren, geschachtelt nicht innerhalb anderer Klassen, können entweder Öffentlich oder intern sein. Klassen sind standardmäßig internal.

Klassenmember, einschließlich geschachtelte Klassen, können Öffentlich, protected internal, geschützt, intern oder privat sein. Member sind standardmäßig privat.

Weitere Informationen finden Sie unter Zugriffsmodifizierer (C#-Programmierhandbuch).

Sie können generische Klassen deklarieren, die Typparameter verfügen. Weitere Informationen finden Sie unter Generische Klassen.

Eine Klasse kann Deklarationen der folgenden Member umfassen:

Im folgenden Beispiel wird erläutert, wie Klassenfelder, Konstruktoren und Methoden deklariert werden. Zusätzlich wird die Objektinstanziierung sowie die Ausgabe von Instanzdaten veranschaulicht. In diesem Beispiel werden zwei Klassen deklariert: die Klasse Child, die zwei private Felder (name und age) sowie zwei öffentliche Methoden enthält, Die zweite Klasse, StringTest, wird verwendet, da sie Main enthält.


class Child
{
    private int age;
    private string name;

    // Default constructor:
    public Child()
    {
        name = "N/A";
    }

    // Constructor:
    public Child(string name, int age)
    {
        this.name = name;
        this.age = age;
    }

    // Printing method:
    public void PrintChild()
    {
        Console.WriteLine("{0}, {1} years old.", name, age);
    }
}

class StringTest
{
    static void Main()
    {
        // Create objects by using the new operator:
        Child child1 = new Child("Craig", 11);
        Child child2 = new Child("Sally", 10);

        // Create an object using the default constructor:
        Child child3 = new Child();

        // Display results:
        Console.Write("Child #1: ");
        child1.PrintChild();
        Console.Write("Child #2: ");
        child2.PrintChild();
        Console.Write("Child #3: ");
        child3.PrintChild();
    }
}
/* Output:
    Child #1: Craig, 11 years old.
    Child #2: Sally, 10 years old.
    Child #3: N/A, 0 years old.
*/


Beachten Sie, dass auf die privaten Felder (name und age) im vorherigen Beispiel nur über die öffentlichen Methoden der Child-Klasse zugegriffen werden kann. Mit der folgenden Anweisung ist es z. B. nicht möglich, den Namen des Kindes über die Main-Methode auszugeben:

Console.Write(child1.name);   // Error

Main könnte nur dann auf private Member von Child zugreifen, wenn Main ein Member der Klasse wäre.

Die Typen, die in einer Klasse ohne einen Zugriffsmodifizierer deklariert werden, führen zu private, daher werden die Datenmember in diesem Beispiel noch private sein, wenn das - Schlüsselwort entfernt wurden.

Beachten Sie schließlich, dass das Altersfeld für das mit dem Standardkonstruktor (child3) erstellte Objekt mit dem Wert 0 (null) initialisiert wurde.

Weitere Informationen finden Sie in der C#-Sprachspezifikation. Die Sprachspezifikation ist die verbindliche Quelle für die Syntax und Verwendung von C#.

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2014 Microsoft