Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Informatik in der Schule » C# Datensammlung » Antwort erstellen » Hallo Gast [Anmelden|Registrieren]

Antwort erstellen
Benutzername: (du bist nicht eingeloggt!)
Thema:
Nachricht:

HTML ist nicht erlaubt
BBCode ist erlaubt
Smilies sind erlaubt
Bilder sind erlaubt

Smilies: 21 von 33
smileWinkDaumen hoch
verwirrtAugenzwinkerngeschockt
Mit ZungeGottunglücklich
Forum Kloppebösegroßes Grinsen
TanzentraurigProst
TeufelSpamWillkommen
LehrerLOL HammerZunge raus
Hilfe 
aktuellen Tag schließen
alle Tags schließen
fettgedruckter Textkursiver Textunterstrichener Text zentrierter Text Hyperlink einfügenE-Mail-Adresse einfügenBild einfügen Zitat einfügenListe erstellen CODE einfügenPHP CODE farbig hervorheben
Spamschutz:
Text aus Bild eingeben
Spamschutz

Die letzten 7 Beiträge
Karlito

Hier noch das Beispiel:

das Kleine Programm beinhaltet eine Main-Form und eine Subform. Alle Forms holen sich beim laden vom Store-Manager einen Sharedstore. Wie du siehst wird da immer das selbe Objekt zurückgegeben. (Das ist fast wie Singleton).

Wenn du Subforms öffnest (Button "Create Window") dann erhältst du unterfenster. Wenn du jetzt den Text in einem der Fenster änderst, dann wird der Text in allen Fenstern angepasst.

Stell dir vor es gäbe noch ein Ereignis, welches mitteilt, dass der Store sich geändert hat. Die Forms könnten sich dann ein neues Store-Objekt vom Store-Manager abholen und du könntest den Speicher quasi unter den Forms weg austauschen.

Verständlich?

VG,

Karlito

Dateianhang:
zip SharedStore.zip (29,47 KB, 426 mal heruntergeladen)
Karlito

Hi,

per Konvention sollte man für jede Klasse eine neue Datei anlegen. Das macht die Sache auch wesentlich übersichtlicher. Das Beispiel muss ich mir erst einfallen lassen... Weis nicht ob ich das heute abend schaffe.

Edit: Im Prinzip kann man in C# aber auch alle Klassen in einer Datei definieren...

VG,

Karlito
InformaTiger

Ich glaube schon dass ich es verstanden habe. Mit einem Beispiel wäre ich mir allerdings sicherer. Und kann ich diese Klasse im Progam.cs anlegen oder in der Form1.cs ? Augenzwinkern

Lg
InformaTiger
Karlito

Hi,

Zitat:
Original von InformaTiger
Eine Klasse mit statischen Membern wäre eine Klasse mit statischen Variablen oder?


Genau.

Zitat:
Original von InformaTiger
Und auf statische Variablen können wircklich alle Forms zugreifen? verwirrt


Ja. Jedoch müssen die Variablen nicht statisch sein, damit alle darauf zugreifen können. Die Sichtbarkeit "public" muss gegeben sein. Man könnte auch ein Objekt erzeugen und dieses allen Forms bekannt machen. Damit hätten auch alle Forms Zugriff auf "den gemeinamen Speicher". Du hättest so auch den Vorteil, dass du den gemeinsamen Speicher austauschen, indem Du den Forms einfach ein neues Objekt bekannt machst...

Das ist am Anfang ein wenig schwer zu verstehen. Ist es klar oder soll ich mal ein Beispiel machen?

VG,

Karlito
InformaTiger

Ich glaube ich bevorzuge hier Variante 1.
Eine Klasse mit statischen Membern wäre eine Klasse mit statischen Variablen oder?
Und auf statische Variablen können wircklich alle Forms zugreifen? verwirrt

Lg
InformaTiger
Karlito

Hallo,

2 (ausgewählte) Möglichkeiten. Eine Klasse mit nur statischen Membern, auf die du zugreifst oder eine Klasse, die das Singleton-Pattern implementiert. Das Singleton-Pattern stellt sicher, dass es nur eine Instanz (ein Objekt) von der Klasse geben kann. Dort kannst du dann deine Daten ablegen und zwischen den Objekten austauschen. Nur wenn du mit mehreren Threads arbeitest, könnte es zu seltsamen verhalten kommen.

VG,

Karlito
InformaTiger C# Datensammlung

Hallo,
gibt es eine Möglichkeit, mehrere Variablen in einem Programm für alle Windows Forms zugänglich zu machen?

Danke schon mal im voraus.
smile

Lg
InformaTiger