Mathias1 hat folgendes geschrieben : |
@Kha:
Verstehe ich das richtig, dass du meinst ich solle eine neue Klasse erstellen, die meine ganzen Variablen und Methoden enthält. Diese übergebe ich dann den jeweiligen Form-Kontruktoren? |
Das wäre ein Anfang, der wenigstens die gegenseitige Abhängigkeit der beiden Form-Klassen entfernen würde. Aber auf längere Sicht hin führt die Trennung zu klarerem und einfacherem Code, mit Patterns wie MVC erst recht.
Ein kleines Beispiel: Angenommen, du hältst in der Main-Form Daten in einer ListBox. Der Dialog muss dann mühsam aus dieser ListBox die Daten wieder auslesen. Viel eleganter wäre es doch, wenn beide Forms auf ein Model-Objekt zugreifen, das die Liste in einer "bekömmlicheren" Form enthält.
Mathias1 hat folgendes geschrieben : |
Erstelle ich dann in der Form eine neue "Variable" des Typs "Form" und weise der den übergebenen Wert zu? |
Warum vom Typ Form, das Objekt soll doch GUI-unabhängig sein?
Du erstellst in der Main-Form ein Objekt deiner MyModel-Klasse (wahrscheinlich ohne Vorfahr), füllst es und übergibst es dem Dialog-Konstruktor, der es wiederum in einem Klassenfeld vom Typ MyModel speichert.
Mathias1 hat folgendes geschrieben : |
Es würden dann doch "intern" trotzdem alle Variablen im Arbeitsspeicher kopiert werden oder? |
Wenn, dann werden nicht Variablen kopiert, sondern Werte/Objekte. Aber Klassen sind Referenztypen. Es wird lediglich eine Referenz übergebe, das Objekt bleibt dasselbe.