Wann sind Globale Variablen verfügbar

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von tron25.

    Wann sind Globale Variablen verfügbar

    Hallo,

    ich habe ein globales Modul mit Variablen. Beispielsweise:

    VB.NET-Quellcode

    1. Public Programmverzeichnis as string = Application.StartupPath

    Jetzt frage ich diese Variable in meiner "_Load"-Sektion meines Hauptformulares ab.

    VB.NET-Quellcode

    1. If Not My.Computer.FileSystem.DirectoryExists(Programmverzeichnis & "\PunktBilder") Then
    2. '...
    3. End If

    Wenn ich an dieser Stelle den Inhalt von "Programmverzeichnis" abfrage, erhalte ich den Wert "Nothing".
    Bei der Deklaration weise ich doch dieser Variablen gleich einen Wert zu.
    So, wie es aussieht, werden die Variablen vor der "_Load"-Sektion erzeugt. Warum bleiben sie dann leer?

    Vorher hatte ich eine eigene Funktion, die allen Variablen Startwerte zugewiesen hat. Allerdings wollte ich nun die Zuweisung direkt beim Erstellen erledigen, um ein bißchen mehr Übersichtlichkeit zu haben.

    Hat jemand eine Idee und kann mir erklären, wo der Fehler liegt?

    Vielen Dank

    tron25 schrieb:

    Hat jemand eine Idee und kann mir erklären, wo der Fehler liegt?
    Belege diese Variable mal im Code, nicht in der Klasse.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Leider kann ich die PNG nicht erkennen, weil ich blind bin. Kannst du mir bitte beschreiben, was darauf ist?

    Mein Programm besteht aus vielen Formularen. Darunter gibt es das Hauptformular und auch ein Einstellungsformular. Aus beiden Formularen soll man auf einige Variablen ztugreifen können. Beispielsweise soll das Hauptformular den Fensterhintergrund in einer bestimmten Farbe darstellen. Im Einstellungsformular soll man die Farbe anpassen können. Bisher hatte ich in einem globalen Modul alle Variablen deklariert, die aus mehreren Formularen erreichbar sein sollen. Im Hauptformular habe ich dann in einer Funktion all diesen Variablen einen Startwert zugewiesen. Danach wird eine INI-Datei ausgelesen und die entsprechenden Werte werden dann in die zugehörigen Variablen geschrieben. Falls in der INI-Datei eine Variable fehlt, ist es kein Problem, da sie beim Start schon einen Wert zugewiesen bekommt. Nun wollte ich mir die Funktion zum Zuweisen der Startwerte spahren und die Werte direkt bei der Deklaration festlegen. Das funktioniert aber nicht, wahrscheinlich, weil das globale Modul nach der _Load-Sektion des Hauptformulares ausgeführt wird. Falls es so ist, werde ich die Funktion doch behalten müssen.
    @tron25

    RodFromGermany schrieb:

    Belege diese Variable mal im Code, nicht in der Klasse.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Ich werde nochmal bekloppt ;-). Als ich das Programm jetzt gestartet habe, um die entsprechenden Codebeispiele herauszukopieren, hat es funktioniert. Eventuell waren beim letzten Versuch, wohl nicht alle Änderungen gespeichert.

    Trotzdem Vielen Dank für eure Beiträge.

    P.S.: Vorher hatte ich die Variable ja im Code definiert. Allerdings wollte ich mir diesen Weg spahren und die Variable direkt bei der Deklaration auch gleich definieren. Scheinbar funktioniert es doch.