Klassen variablen problem



  • Hallo,

    Folgende Klasse:

    class network
        {
            public string db_host = "127.0.0.1"; 
            public string db_database = null; 
            public string db_user = "";
            public string db_pass = "";
    
    ... methoden ...
    }
    

    wird von 2 forms eingebunden mit.
    network nw = new network();

    bei der ersten form werdendie variablen der klasse gesetzt:

    nw.db_host = "...";
    nw.db_database = "...";
    ...
    ...
    

    nun binde ich die klasse in der Form2.cs wieder so ein:

    network nw =  new network();
    

    und nun überschreibt er mir sämtliche variablen werte, welche in der klasse vorher durch die form1 festgelegt wurden.

    was kann ich dagegen tun?

    danke für die antworten!



  • Entweder eine statt zwei Instanzen benutzen oder die members static machen.



  • Danke

    Kannst du mir ein Code bsp geben?

    static public string db_host = "127.0.0.1"; 
            static public string db_database = null; 
            static public string db_user = "";
            static public string db_pass = "";
    

    Wie greif ich dann auf die members zu?
    nw.db_database = ""; geht ja dann nicht mehr.

    danke



  • Zugriff dann über den Klassennamen (da static ja besagt, daß man kein konkretes Objekt mehr benötigt):

    network.db_database = "testdb";
    

    Wenn jedes network-Objekt (P.S: Klassennamen solltest du mit einem Großbuchstaben versehen, d.h. Network) jedoch eine eigene host, db, user und passwort haben soll, dann mußt du einfach die entsprechende Referenz weitereichen, anstatt ein neues Objekt zu erzeugen.



  • das problem bei deinem projekt ist, dass nw in form1 und nw in form2 2 komplett unterschiedliche objekte sind also wenn du von form2 auf nw zugreifst ist das nicht nw in form1, du kannst wie oben gesagt static verwenden, somit hast du nur eine instanz, oder die klasse global deklarieren


Log in to reply