Freigeben über


Strukturen (C# und Java im Vergleich)

Aktualisiert: November 2007

C# unterstützt das struct-Schlüsselwort. Dies ist ein weiteres Element, das aus C stammt und in Java nicht verfügbar ist. Sie können sich struct wie eine einfache Klasse vorstellen. structs können zwar Konstruktoren, Konstanten, Felder, Methoden, Eigenschaften, Indexer, Operatoren und geschachtelte Typen enthalten, werden aber meist lediglich zum Kapseln von Gruppen zugehöriger Felder verwendet. Da es sich bei Strukturen um Werttypen handelt, können sie etwas effizienter als Klassen zugeordnet werden. structs unterscheiden sich von Klassen darin, dass sie nicht abstrakt sein können und keine Implementierungsvererbung unterstützen.

Im folgenden Beispiel wird eine struct mit dem new-Schlüsselwort initialisiert. Dazu wird der Standardkonstruktor ohne Parameter aufgerufen, und anschließend werden die Member der Instanz festgelegt.

public struct Customer
{
    public int ID;
    public string Name;

    public Customer(int customerID, string customerName)
    {
        ID = customerID;
        Name = customerName;
    }
}

class TestCustomer
{
    static void Main()
    {
        Customer c1 = new Customer();  //using the default constructor

        System.Console.WriteLine("Struct values before initialization:");
        System.Console.WriteLine("ID = {0}, Name = {1}", c1.ID, c1.Name);
        System.Console.WriteLine();

        c1.ID = 100;
        c1.Name = "Robert";

        System.Console.WriteLine("Struct values after initialization:");
        System.Console.WriteLine("ID = {0}, Name = {1}", c1.ID, c1.Name);
    }
}

Ausgabe

Wenn wir den vorherigen Code kompilieren und ausführen, können wir anhand der Ausgabe ablesen, dass die struct-Variablen standardmäßig initialisiert werden. Die int-Variable wird mit 0 initialisiert, und die string-Variable wird als leere Zeichenfolge initialisiert:

Struct values before initialization:

ID = 0, Name =

Struct values after initialization:

ID = 100, Name = Robert

Siehe auch

Aufgaben

Beispiel zu Strukturen

Konzepte

C#-Programmierhandbuch

Referenz

Strukturen (C#-Programmierhandbuch)

Weitere Ressourcen

Die Programmiersprache C# für Java-Entwickler