![]() |
![]() |
![]() |
Datenstrukturen, Teil 1 Besonderheiten in Speicherverwaltung, Geschwindigkeit, Dynamik.
Struktur
struct TestS { public int zahl; public object obj; }
class TestC { public int zahl; public object obj; }
// 1. Instanz der Klasse TestC testc1 = new TestC(); testc1.obj = new Button(); testc1.zahl = 10;
// 2. Instanz der Klasse TestC testc2 = new TestC();
// Gleichsetzung der 2. Instanz der Klasse mit der 1. Instanz testc2 = testc1;
//Änderung der 1. Instanz der Klasse testc1.obj = null; testc1.zahl = 5;
// Was ist passiert? Klassen sind Referenztypen! // Daher wird mit Änderung der 1. Instanz AUCH die 2. Instanz geändert, da sie auf das selbe Objekt verweisen. // Somit gilt jetzt auch für die 2. Instanz: testc2.obj == null und testc2.zahl == 5.
// 1. Instanz der Struktur TestS tests1 = new TestS(); tests1.obj = new Button(); tests1.zahl = 10;
// 2. Instanz der Struktur TestS tests2 = new TestS();
// Gleichsetzung der 1. Instanz der Struktur mit der 2. Instanz tests2 = tests1;
// Änderung der 1. Instanz der Struktur tests1.obj = null; tests1.zahl = 5;
// Was ist passiert? Strukturen sind Wertetypen! // Daher wird mit Änderung der 1. Instanz NICHT die 2. Instanz geändert, da diese eine Kopie darstellt. // Somit gilt weiterhin für die 2. Instanz: tests2.obj == Button und tests2.zahl == 10.
|