Laden...

Settings überall verfügbar machen

Erstellt von Viper2000 vor 14 Jahren Letzter Beitrag vor 14 Jahren 1.118 Views
V
Viper2000 Themenstarter:in
63 Beiträge seit 2008
vor 14 Jahren
Settings überall verfügbar machen

Hallo Forum,

ich habe mal eine Frage. Ich denke die Frage bewegt sich richtung Objektorientierung.

Ich habe eine Windows Form Applikation und mir dazu eine eigene recht umfangreiche Klasse zur Anwendungskonfiguration geschrieben. Die Klasse verwaltet Einstellungen die ich in meiner Form für andere Aufgaben brauche.

Ich erzeuge in meinem Form eine Instanz der Config-Klasse und kann dann über die Methoden dieser Klasse die Einstellungen beeinflussen und in einer Konfigurationsdatei schreiben und auch wieder einlesen. Soweit so gut.

Jetzt möchte ich allerdings die Einstellungen nicht direkt in meinem Hauptform befüllen sondern in einem seperaten Formular eine TreeView bauen wo ich die Einstellungen bearbeiten kann.

Ich möchte also das Objekt in einem seperaten Form lesen und schreiben und in meinem Hauptform nur lesend auf die Einstellungen zugreifen um den Programmablauf entsprechend zu beeinflussen.

Wie macht man das? Tut man dem neuen Form das Objekt mit dem Schlüsselwort ref übergeben? Oder wie ist die allgemeine Vorgehensweise für ein solches Problem?

Viele Grüße
viper

49.485 Beiträge seit 2005
vor 14 Jahren

Hallo Viper2000,

ja, einfach das Objekt an den Konstruktor der neuen Form übergeben. ref ist dafür nicht erforderlich und würde sogar verwirren. Siehe [Artikel] C# und Übergabemechanismen: call by value vs. call by reference (ref/out).

Für die Anwendung globale Setting sind m.E. einer der wenigen Fälle, wo auch ein Singleton in Frage kommen würde.

herbivore

V
Viper2000 Themenstarter:in
63 Beiträge seit 2008
vor 14 Jahren

Guter Artikel!

Jetzt bin ich aber leicht verwirrt weil gerade in meinem Fall müsste ich doch dann die Referenz übergeben damit das Objekt in der Hauptform ebenfalls beeinflusst wird wenn ich in meinem Settings Form Einstellungen ändere.

Wenn ich das Objekt ohne ref an den Konstruktor des Settings Forms übergebe dann spiele ich doch nur auf dem kopieren Objekt und mein Config Objekt in der Hauptform bleibt auf den alten Werten stehen...

2.187 Beiträge seit 2005
vor 14 Jahren

Hallo Viper2000,

Wenn dein Objekt ein ReferenzType ist (class) dann wird er immer per Referenz übergeben, daher ist ref überflüssig/verwirrend.

Gruß
Juy Juka

V
Viper2000 Themenstarter:in
63 Beiträge seit 2008
vor 14 Jahren

okayyyyyy, aber diese Aussage spricht doch genau gegen den von Herivore verlinkten Artikel. Dort wird auch eine Klasse erzeugt und per ref übergeben. Bei der übergabe ohne ref passiert ja dann genau das was ich nciht so unbedingt möchte 🤔

F
10.010 Beiträge seit 2004
vor 14 Jahren

Nein, du solltest den Artikel genauer lesen, und den Unterschied zwischen
Value- und Referenztypen genauer herausarbeiten.

49.485 Beiträge seit 2005
vor 14 Jahren

Hallo Viper2000,

natürlich kann man auch Referenzen per ref (also per Referenz) übergeben, Aber dann hat am eben eine Referenz auf eine Referenz. Und das brauchst du nicht. Dir reicht die normale Übergabe ohne ref. Im Zweifel probiere es aus.

herbivore

V
Viper2000 Themenstarter:in
63 Beiträge seit 2008
vor 14 Jahren

Ich habe es nun verstanden und habe etwas wichtiges hinzugelernt... Danke euch für die Hilfe! 🙂