1. Klassen werden im Heap gespeichert. Diese Methode kann die Flexibilität des Lebenszyklus der ausgegebenen Daten gewährleisten. Aufgrund der Optimierung des verwalteten Heaps ist der Verlust jedoch relativ gering.
Aber manchmal benötigen wir nur eine relativ kleine Datenstruktur, dann können wir die Verwendung dieser Struktur in Betracht ziehen
wie
Klasse windowForm
{
public int Links;
public int Rechts;
}
Eine solche Klasse mit nur zwei Speicherelementen muss sich nur mit diesen beiden Variablen befassen. Dann kann es als Struktur definiert werden
struct windowForm
{
public int Links;
public int Rechts;
windowForm(int links, int rechts)
{
this.Left = links;
this.Right = richtig;
}
public void set()
{
Console.WriteLine("Links:" + Links + "Rechts:" + Rechts);
}
}
Auf diese Weise können Strukturen mit Konstruktoren die Probleme und Leistungsprobleme vermeiden, die mit der Definition in einer Warteschlange verbunden sind.
Strukturen können auch Eigenschaften usw. definieren.
2. Die Struktur ist ein Werttyp, der auf dem Stapel oder inline gespeichert ist
Wie folgt: Die beiden Set-Methoden verarbeiten dieselbe Struktur und können den Wert von Left nicht ändern.
Klassenprogramm
{
static void Main(string[] args)
{
windowForm win = new windowForm();
win.set();
Ändern(gewinnen);
win.set();
Console.Read();
}
static void Change(windowForm win)
{
win.Left = 1;
}
}
3. Struktur kann nicht vererbt werden
4. Der Konstruktor der Struktur ist ein vom Compiler bereitgestellter Konstruktor ohne Parameter, und Sie können keinen neuen Konstruktor definieren, um ihn zu ersetzen.
5. Die Struktur wird hauptsächlich für kleinere Datenstrukturen verwendet. Wenn sie zu groß ist, kommt es zu Leistungseinbußen.
6. Wenn Sie eine Struktur als Parameter übergeben, verwenden Sie das Schlüsselwort ref, da sonst jedes Mal neue Inhalte kopiert werden, was zu unnötigem Leistungsverbrauch führt.
7. Wenn eine Struktur einer anderen Struktur zugewiesen wird, werden alle Kopien und die Klasse jedes Mal erstellt, da es sich bei der Struktur um einen Nicht-Referenztyp handelt