Aktuelle Instanz einer Klasse bekommen?!



  • Hallo zusammen,

    wie kann ich von einer Klasse die aktuelle Instanz bekommen?
    Das Problem hört sich erstmal ziemlich trivial an. Bei näherem Hinsehen fällt aber auf, dass das ganze ziemlich kompliziert ist.

    Ich habe eine Klasse A und ein Formular B. Eine Methode der Klasse A wird irgendwann aufgerufen. Zu der Zeit wo die Methode der Klasse A aufgerufen wird existiert das Formular B schon beliebig lange Zeit. Die Methode der Klasse A erhält einen String als Parameter. Dieser String soll nun von Klasse A an die aktuelle Instanz von Form B übergeben werden.
    Um den String an die aktuelle Instanz zu übergeben muss ich aber die aktuelle Instanz kennen. Wie komme ich an diese Instanz?

    Vielen Dank an alle, die sich mit meinem Problem beschäftigen.

    Viele Grüße,
    Bob 🙂



  • Bob1990 schrieb:

    Ich habe eine Klasse A und ein Formular B. Eine Methode der Klasse A wird irgendwann aufgerufen. Zu der Zeit wo die Methode der Klasse A aufgerufen wird existiert das Formular B schon beliebig lange Zeit. Die Methode der Klasse A erhält einen String als Parameter. Dieser String soll nun von Klasse A an die aktuelle Instanz von Form B übergeben werden.

    Gegenfragen:
    1. Wird die Klasse A vom Formular B erzeugt?
    => Wenn ja, könntest du beim erzeugen eine Referenz mitgeben.
    2. Kann vom Formular B immer nur eine Instanz existieren?
    => Wenn nein: Sofern keine Verbindung zu Klasse A besteht wirst du
    wenn noch prüfen können ob das Aktive Fenster ein Formular B ist.
    => Wenn ja: Abfrage beispielsweise über eine statischen Member des
    Formulars, das beim Anlegen einer Instanz gesetzt, und beim Schließen
    mit NULL belegt wird.

    Normalerweise kommunizieren Klassen über ein Member (Wenn Klasse a an eine Klasse b Informationen schicken will, muss sie Kenntnis von der Instanz haben, sprich beispielsweise eine Referenz auf diese Instanz besitzen oder alternativ muss es eine [statische] Funktion oder ein Singleton geben, das einen diese Instanz liefert).



  • Hi asc!

    Danke für deine Antwort. An einen Singleton habe ich auch schon gedacht. Allerdings bin ich mir nicht sicher ob das bei einem Formular so einfach geht.

    Gegenfragen:
    1. Wird die Klasse A vom Formular B erzeugt?
    => Wenn ja, könntest du beim erzeugen eine Referenz mitgeben.

    => Nein, leider nicht.

    2. Kann vom Formular B immer nur eine Instanz existieren?
    => Wenn nein: Sofern keine Verbindung zu Klasse A besteht wirst du
    wenn noch prüfen können ob das Aktive Fenster ein Formular B ist.

    => Es wird immer nur eine Instanz existieren.

    => Wenn ja: Abfrage beispielsweise über eine statischen Member des
    Formulars, das beim Anlegen einer Instanz gesetzt, und beim Schließen
    mit NULL belegt wird.

    => An eine Lösung mit statischen Membern habe ich auch gedacht. Aber irgendwie hatte ich einen Denkfehler. Jetzt funktioniert es wunderbar. Danke für den Denkanstoß!! Das war's 🙂

    Viele Grüße,
    Bob


Log in to reply