C# - Strukturen: Ein Leitfaden für Anfänger

Hallo da draußen, zukünftige C#-Entwickler! Heute tauchen wir ein in die faszinierende Welt der Strukturen in C#. Machen Sie sich keine Sorgen, wenn Sie neu im Programmieren sind – ich werde Ihr freundlicher Guide auf dieser Reise sein und alles Schritt für Schritt erklären. Also, los geht's!

C# - Structure

Was ist eine Struktur?

Bevor wir uns den Details widmen, lassen Sie uns verstehen, was eine Struktur ist. In C# ist eine Struktur (oft abgekürzt als "struct") ein Wertetyp, der verschiedene Datenmitglieder und Methoden enthalten kann. Stellen Sie sich sie als einen Behälter vor, der verschiedene Arten von Informationen zusammenhalten kann.

Stellen Sie sich vor, Sie richten einen Rucksack für eine Wanderung her. Sie könnten verschiedene Fächer für Ihre Wasserflasche, Snacks, Karte und Kompass haben. Ähnlich wie eine Struktur in C# ermöglicht es Ihnen, verwandte Daten in einer Einheit zusammenzufassen.

Definition einer Struktur

Nun sehen wir, wie wir eine Struktur in C# erstellen können. Die grundlegende Syntax sieht如此 aus:

struct StrukturName
{
// Datenmitglieder und Methoden kommen hier hin
}

Lassen Sie uns eine einfache Struktur erstellen, um einen Punkt im 2D-Raum darzustellen:

struct Point
{
public int X;
public int Y;
}

In diesem Beispiel haben wir eine Struktur namens Point mit zwei ganzzahligen Mitgliedern X und Y definiert. Diese darstellen die Koordinaten eines Punktes auf einer 2D-Ebene.

Verwendung unserer Struktur

Nun, da wir unsere Point-Struktur definiert haben, sehen wir uns an, wie wir sie verwenden können:

Point meinPunkt;
meinPunkt.X = 10;
meinPunkt.Y = 20;

Console.WriteLine($"Der Punkt ist bei ({meinPunkt.X}, {meinPunkt.Y})");

Dieser Code erstellt einen neuen Point, setzt seine X und Y Werte und gibt sie dann aus. Wenn Sie diesen Code ausführen, werden Sie sehen:

Der Punkt ist bei (10, 20)

Ist das nicht toll? Wir haben gerade unseren eigenen benutzerdefinierten Typ erstellt und in unserem Programm verwendet!

Eigenschaften von C#-Strukturen

Nun, da wir unsere Füße nass gemacht haben, erkunden wir einige der Schlüsselmerkmale von Strukturen in C#.

1. Wertetyp

Strukturen sind Wertetypen, was bedeutet, dass sie direkt auf dem Stapel gespeichert werden. Dies macht sie effizient für kleine Datenstrukturen. Wenn Sie eine Struktur an eine neue Variable zuweisen oder an eine Methode übergeben, wird eine Kopie der gesamten Struktur erstellt.

2. Kann nicht erben

Im Gegensatz zu Klassen können Strukturen nicht von anderen Strukturen oder Klassen erben (außer von System.ValueType, von dem alle Strukturen implizit erben).

3. Kann Schnittstellen implementieren

Obwohl Strukturen nicht erben können, können sie Schnittstellen implementieren. Dies ermöglicht eine gewisse Flexibilität im Design.

4. Kann Konstruktoren haben

Strukturen können Konstruktoren haben, aber sie müssen alle Felder der Struktur initialisieren.

Lassen Sie uns unsere Point-Struktur ändern, um einen Konstruktor hinzuzufügen:

struct Point
{
public int X;
public int Y;

public Point(int x, int y)
{
X = x;
Y = y;
}
}

Jetzt können wir einen Point so erstellen:

Point meinPunkt = new Point(10, 20);
Console.WriteLine($"Der Punkt ist bei ({meinPunkt.X}, {meinPunkt.Y})");

5. Kann Methoden haben

Strukturen können auch Methoden enthalten. Lassen Sie uns eine Methode hinzufügen, um den Abstand unseres Punktes zum Ursprung (0,0) zu berechnen:

struct Point
{
public int X;
public int Y;

public Point(int x, int y)
{
X = x;
Y = y;
}

public double AbstandZumUrsprung()
{
return Math.Sqrt(X*X + Y*Y);
}
}

Jetzt können wir diese Methode verwenden:

Point meinPunkt = new Point(3, 4);
Console.WriteLine($"Abstand zum Ursprung: {meinPunkt.AbstandZumUrsprung()}");

Dies wird ausgeben:

Abstand zum Ursprung: 5

(Erinnern Sie sich an den Pythagoreanischen Lehrsatz? Er ist hier sehr nützlich!)

Klasse versus Struktur

Nun, da wir Strukturen verstehen, könnte sich die Frage aufdrängen: "Wann sollte ich eine Struktur anstelle einer Klasse verwenden?" Tolle Frage! Lassen Sie uns das analysieren:

Verwenden Sie Strukturen, wenn:

  1. Sie eine kleine Menge an Daten haben (normalerweise weniger als 16 Bytes).
  2. Die Daten logisch ein einzelner Wert sind (wie ein Punkt im 2D-Raum).
  3. Die Daten unveränderlich sind (ändern sich nach der Erstellung nicht).
  4. Das Objekt nicht als Referenz übergeben werden muss.

Verwenden Sie Klassen, wenn:

  1. Sie eine größere Menge an Daten haben.
  2. Die Lebensdauer des Objekts kontrolliert werden muss (z.B. mit einem Destruktor).
  3. Das Objekt von einem anderen Typ erben muss.
  4. Sie Referenztypsemantik benötigen.

Hier ist eine schnelle Vergleichstabelle:

Eigenschaft Struktur Klasse
Typ Wertetyp Referenztyp
Speicherort Stapel Heap
Erben Kann nicht erben Kann erben
Standardkonstruktor Vom Compiler bereitgestellt Nicht vom Compiler bereitgestellt
Kann abstrakt sein Nein Ja
Kann Schnittstellen implementieren Ja Ja
Kann Destruktoren haben Nein Ja

Fazit

Und da haben Sie es! Wir sind durch das Land der C#-Strukturen gereist, von grundlegenden Definitionen bis hin zu Vergleichen mit Klassen. Strukturen sind ein leistungsstarkes Werkzeug in Ihrem C#-Werkzeugkasten, perfekt für die effiziente Darstellung einfacher Datentypen.

Erinnern Sie sich daran, dass die Wahl zwischen Strukturen und Klassen von Ihren spezifischen Bedürfnissen abhängt. Während Sie Ihre C#-Abenteuer fortsetzen, werden Sie eine Intuition dafür entwickeln, wann Sie welche verwenden sollen.

Weiters üben, weiter coden und vor allem: Spaß haben! Wer weiß? Beim nächsten Mal, wenn Sie eine Wanderung planen, könnten Sie sich in terms von C#-Strukturen über Ihren Rucksack Gedanken machen. Frohes Coden, zukünftige Entwickler!

Credits: Image by storyset