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
Konzepte
Referenz
Strukturen (C#-Programmierhandbuch)