Globale Variablen / Funktionen

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von Sinlikez.

    Globale Variablen / Funktionen

    Hey Leute ^^,

    gleich zur Info:

    Ich habe mir ein Modul erstellt indem ich eine globale funktion erstelle die mir dieses

    VB.NET-Quellcode

    1. Me.Close
    2. Me.Dispose


    erspart

    Ich wollte es so machen


    VB.NET-Quellcode

    1. Public Sub ClDi 'Close & Dispose
    2. Me.Close
    3. Me.Dispose
    4. End sub


    Jedoch erkennt er da aber Me. nicht was ja klar ist... Was kann ich tun? Um mir das zu ersparen ^^ Will ein schönes, übersichtliches Projekt machen und will mir soviel Code sparen wie möglich :)
    Und ausserdem will ich mich im modularen Entwickeln verbessern :) Danke schon mal im Vorraus für die Tipps :)

    Sinlikez

    //EDIT: Übrigens hilft diese Funktion einen das DISPOSE nicht zu vergessen. In allem wäre sie ganz praktisch

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

    VB.NET-Quellcode

    1. Public Module SomeModule
    2. Public Sub ClDi(ByVal Obj As Form)
    3. Obj.Close()
    4. Obj.Dispose()
    5. End Sub
    6. End Module
    Aufruf (in der Form-Klasse):

    VB.NET-Quellcode

    1. SomeModule.ClDi(Me)


    Kannst's auch so machen:

    VB.NET-Quellcode

    1. Public Module FormExtensions
    2. <Extension()>
    3. Public Sub ClDl(ByVal Frm As Form)
    4. Frm.Close()
    5. Frm.Dispose()
    6. End Sub
    7. End Module
    Und so aufrufen (im Form):

    VB.NET-Quellcode

    1. ClDl()

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

    Danke haiyyu!!!

    Ich hab mal die Signatur gelesen (von irgendeinem Member hier) ^^ Das mit dem Fisch geben und fischen lernen :)
    Ich C&P das jetz nicht ^^ Ich wills verstehen ^^ und gerade versteh ich des ned so ..

    Public Sub ClDi(ByVal Obj as Form) <--- Das heisst ich dimensioniere "Obj" als eine Form?
    Und beim Aufruf gebe ich dann an was ich schließen will (Auch in den Klammern, oder?)
    Bei meinem ersten Beispiel habe ich soeben einen kleinen Fehler ausgebessert.
    In den Klammern wird nichts dimensioniert, das "As Form" gibt nur an, dass der Benutzer ein Form-Objekt übergeben muss.
    Sonst kann er irgendwas Anderes übergeben, z.B. einen Button oder eine andere Klasse, und das würde dann spätestens bei der Ausführung des Programmes crashen.
    Wenn die Funktion nur von dir benutzt wird, dann benötigst du das eigentlich nicht, aber so ist es Option Strict On, und das ist nie schlecht. :)

    Und ja, beim Aufruf gibst du einfach als Parameter (in den Klammern) an, was du schließen willst (in deinem Fall das aktuelle Objekt - Me).

    Aber am besten nimmst du meinen zweiten Code, das fügt die Funktion mehr oder weniger direkt zur Form-Klasse hinzu, weshalb du es innerhalb eines Form-Objekts einfach mit dem Namen ansprechen kannst. :)
    Super^^ Danke funktioniert wunderbar :)

    Vielen dank für deine Hilfe^^
    Jetzt versteh ichs auch^^

    wenn ich z.b nen datagridview ansprechen will muss ich es halt zb so machen
    Sub blub(ByVal dgv as DataGridView) usw (glaub ich) xD

    auf jeden fall danke :)
    hab dir 2x hilfreich gegeben :D

    //EDIT: Übrigens, mit Option Strict hab ich angefangen zu programmieren und hab mich da auch recht schwergetan aber dank dem hab ich auch viel wissen :D