none
leeres Array, leere Variable - Zugriffsproblem? RRS feed

  • Frage

  • Hallo - erstmal einen guten Rutsch ins neue Jahr!

    Ich habe hier mehrere Klassen - nennen wir sie mal: Form1, emil, lisa, fritz und global.

    Form1 kann auf alle zugreifen, emil bis fritz enthalten arbeitscode, der je nach Bedarf ausgeführt wird, in global sind all diejenigen Methoden enthalten, auf die alle zugreifen müssen - z.B. die Einstellungen - Optionen - lesen. Auf 'global' können also alle zugreifen.

    Zu Beginn werden diese Optionen von 'global' ausgelesen und als 'public string[] OptionsArray' gespeichert (Anweisung von Form1 an global).

    Später fragt 'emil' dann 'global' nach einem Datensatz im 'OptionsArray' (siehe oben), erhält aber nur 'null' als Antwort. Ich kann mir nicht erklären, warum. Existiert das OptionsArray nicht mehr oder ist meine Kontsruktionshierachie von Grund auf falsch?

    Der Sachverhalt ist etwas schwierig, ich hoffe, ich habe mich klar genug ausgedrückt:

    Also: 3 Ebenen:

    ganz oben Form1 - kann auf alles zugreifen

    mitte: emil, lisa, fritz - greifen nur auf global zu

    ganz unten: global - darauf können alle zugreifen.

    Scherheit: Bei mir ist alles public (einige nur lokal genutze Variablen nicht).

    Eingebunden sind die jeweiligen unteren mit z.B. 'global gb = new global();' Was mache ich falsch, was übersehe ich?

    Danke! ...lypô


    • Bearbeitet lypo Montag, 30. Dezember 2013 11:33
    Montag, 30. Dezember 2013 11:33

Antworten

  • Hi lypo,

    wenn ich die richtig verstanden habe erzeugst du eine neue Instanz (Objekt) von global in den einzelnen Klassen.

    Wenn du eine neue Instanz erzeugst sind natürlich keine Werte gesetzt.

    Du kannst jetzt hingehen und Form1 global erzeugen lassen und global dann an die anderen Klassen übergeben.

    Oder du machst aus global eine Statische Klasse. Da schau dir mal das Singelton Patten an.

    MFG

    Björn

    • Als Antwort markiert lypo Montag, 30. Dezember 2013 12:02
    Montag, 30. Dezember 2013 11:55

Alle Antworten

  • Hi lypo,

    wenn ich die richtig verstanden habe erzeugst du eine neue Instanz (Objekt) von global in den einzelnen Klassen.

    Wenn du eine neue Instanz erzeugst sind natürlich keine Werte gesetzt.

    Du kannst jetzt hingehen und Form1 global erzeugen lassen und global dann an die anderen Klassen übergeben.

    Oder du machst aus global eine Statische Klasse. Da schau dir mal das Singelton Patten an.

    MFG

    Björn

    • Als Antwort markiert lypo Montag, 30. Dezember 2013 12:02
    Montag, 30. Dezember 2013 11:55
  • Seufz! Ich wusste es: Ich mache wieder irgendeinen dummen Fehler. Wenn man aus Fehlern lernt - na, dann müsste ich ja sowas von schlau sein... :-))

    Okay, Spaß beiseite: Klar, neue Instanzen sind per se leer. Umpf!

    Jetzt kommst du aber mit Sachen an, die ich noch nicht drin habe. Wie übergebe ich gb an die anderen? na, ich werd's herausfinden. Darin(!!!) bin ich gut. Mit Singleton hab ich mich noch nicht beschäftigt - das werde ich also demnächst tun.

    Vielen Dank! Und wie schon gesagt: Komm gut und vor allem gesund & heil rüber - und bleib's danach! :-))

    Viele Grüße

    ...lypô

    Montag, 30. Dezember 2013 12:10