Frage zu Klassen

  • VB.NET

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von milaim.

    Frage zu Klassen

    Hi Leute,

    wenn ich einer Klasse

    VB.NET-Quellcode

    1. Public var As Long = 23


    dann gilt die nach Angaben von Galileocomputing für alle Programme. Wenn ich jetzt aber in Form1 die Variable "var" ändern will, mach ich das so

    VB.NET-Quellcode

    1. var =2
    2. 'oder so
    3. var+= 2


    Aber irgendwie funzt des net. Bitte helft mir. PS: Des gleiche Problem habe ich auch mit funktionen die in einer Klasse erstellt werden. Bitte postet nu einen Code und net sowas wie schau mal da nach, des hat wie man sieht ja nix gebracht
    Danke des funzt schon, aber des war net mein Problem, sry hab mich wohl blöd ausgedrück: Also nochmal.

    Ich erstelle eine Klasse (Class1.vb) in die schreibe ich:

    VB.NET-Quellcode

    1. Public a as Long


    Wie verwende ich die Variable jetzt in Form1?



    2. Wie schreibe ich eine Funktion UND wie verwende ich sie dann in Form1.vb?
    Die Klasse muss ebenfalls Public sein, dann kannst du so auf sie zugreifen:

    VB.NET-Quellcode

    1. Class1.a="bla"

    Eine Funktion muss dann Public oder Shared sein

    VB.NET-Quellcode

    1. Shared Function Deinefunktion(Byval stext As String) As String
    2. If stext="hallo"
    3. Return "auch hallo"
    4. Else
    5. Return "?"
    6. End If
    7. End Function

    So kannst du zum Beispiel auf sie zugreifen:

    VB.NET-Quellcode

    1. MessageBox.Show(Class1.Deinefunktion("hallo"))

    oder so

    VB.NET-Quellcode

    1. MessageBox.Show(Class1.Deinefunktion("gtsf tw4"))
    Geht net sorry kommt die Felermeldung

    Der Verweis auf einen nicht freigegebenen Member erfordert einen Objektverweis.

    Außerdem wenn man einen Code eingibt, schlägt VB ja immer noch vor was man schreiben will. Aber da steht in der Liste nur "Equals" und "ReferenceEquals"

    PS: Also mein Klassencode ist der:

    VB.NET-Quellcode

    1. Public Class Class1
    2. Public varschnell As String
    3. End Class


    Diese Variable soll jetzt abgerufen werden, und zwar in Form1.vb

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „VB2008Lover“ ()

    kevin89 schrieb:

    Achso es geht hier um ne Dll lol

    Ja klar die musst du als Verweis hinzufügen, dann kannst du so auf sie zugreifen:

    VB.NET-Quellcode

    1. [NAME DER KLASSE].Class1.varschnell


    Ich glaub eher nicht, dass er eine dll meint...

    @Poster: Wenn du drauf zugreifen willst, musst du die auch freigeben, damit man drauf zugreift (wir reden hier davon, dass die Klasse keinen Konstruktor hat)

    VB.NET-Quellcode

    1. Public Class Class1
    2. Public Shared Var As String
    3. End Class


    So kannst du nähmlich auf diese Variable direkt zugreifen, da hilft dir Shared.

    Bessere Lösung: Du machst das mit einem Konstruktor. Dazu musst du lediglich Public Sub New() in die Klasse einfügen, dann musst du auch nicht Shared benutzen.
    Wenn du dann Die Methode New in deiner Klasse drin hast, hast du den Vorteil, dass du klassen beliebig oft Instanziieren kannst.
    Das würde dann so aussehen:

    VB.NET-Quellcode

    1. Public Class Class1
    2. Public strName As String
    3. Public Sub New()
    4. 'Hier muss nicht unbedingt was stehen....
    5. End Sub
    6. End Class


    Die Instanziierung der Klasse und der Aufruf der String-Variable erfolgt dann im Form1 so:

    VB.NET-Quellcode

    1. Dim meineKlasse As NEW Class1 'Hier wird die Klasse neu (mit hilfe von NEW) instanziiert.
    2. meineKlasse.strName = "MM" 'Hier wird dann auf strName in der Klasse zugegriffen.


    EDIT: myClass in meineKlasse umgeändert, da es ein reserviertes Wort ist. Man lernt immer was dazu. ;)
    "Wenn jemand in einem Betrieb unverzichtbar ist, dann ist dieser Betrieb falsch organisiert." - Roberto Niederer

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „milaim“ ()