Auslagern von Quellcode

  • VB.NET
  • .NET (FX) 4.0

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von EaranMaleasi.

    Auslagern von Quellcode

    Guten Morgen,

    Kann man Quellcode auslagern?

    Angenommen wir haben eine Form1

    VB.NET-Quellcode

    1. Public Class Form1
    2. End Class



    In dieser Form habe ich eine Sub. Nehmen wir z.B. mal einen Button1 der bei Click etwas macht.

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    3. For Each fi As FileInfo In New DirectoryInfo("Dein Pfad").GetFiles("*.pdf", SearchOption.AllDirectories)
    4. Dim x As String = fi.Name.Replace(".pdf", "")
    5. 'Führe noch 100 Zeilen Code aus
    6. Console.WriteLine(x)
    7. Next
    8. End Sub
    9. End Class


    Jetzt möchte ich gerne den Quellcode aus Button1 auslagern, damit der Quellcode auf meiner MainForm überschaubarer ist.


    Bislang habe ich meine subs einfach in ein Modul geschrieben.

    VB.NET-Quellcode

    1. Module Codeverschoenern
    2. Public Sub CodevonButton1
    3. For Each fi As FileInfo In New DirectoryInfo("Dein Pfad").GetFiles("*.pdf", SearchOption.AllDirectories)
    4. Dim x As String = fi.Name.Replace(".pdf", "")
    5. 'Führe noch 100 Zeilen Code aus
    6. Console.WriteLine(x)
    7. Next
    8. End Sub
    9. End Module


    Und jetzt habe ich die Sub im Code der Mainform nur aufgerufen.

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    3. CodevonButton1()
    4. End Sub
    5. End Class


    Jetzt bin ich aber auf den Backgroundworker gestoßen und habe festgestellt, dass es beim BackGroundWorker nicht funktioniert, eine Sub aus einem Modul aufzurufen und diese auszulagern um die Form nicht zu blockieren.
    Daraufhin habe ich @Niko Ortner angeschrieben, der mir riet, dazu mal einen Thread zu eröffnen, was ich hiermit tue.
    Ich weiß nicht, welche Möglichkeiten es gibt, seinen Code besser zu strukturieren und übersichtlicher zu machen.
    Auch weiß ich nicht ob es möglich ist, ausgelagerten Code in einem BGW auszuführen.

    Falls jemand helfen kann, wüürde ich mich sehr freuen.

    Beste Grüße,

    razzzer530i
    ~Wir leben zwar alle unter dem gleichen Himmel, aber es haben nicht alle den gleichen Horizont~
    Mein Tipp wäre: versuch es nicht auszulagern (!!! solange es nicht sinnvoll ist, das auszulagern !!!, z.B. eigene Klassen mit sinnvoll gekapselter Funktionalität),
    sondern packe es in ein region-Konstrukt.

    VB.NET-Quellcode

    1. #Region "was auch immer"
    2. .......
    3. #End Region


    Damit kannst du es ausblenden
    @razzzer530i Du kannst auch per Partial Class Code aus einer Klasse in eine andere Datei derselben partiellen Klasse auslagern.
    Sieh Dir mal Form1.vb und Form1.Designer.vb an.
    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!

    Duke schrieb:

    sondern packe es in ein region-Konstrukt.
    Dies würde ich lediglich benutzen, wenn sich ein ellenlanger Code absolut nicht in eine (oder mehrere) Funktion(en) auslagern lässt, oder wenn trotz Auslagerungen die Datei so rießig geworden ist, dass selbst im "eingeklappten" Zustand es noch unübersichtlich ist. An dieser Stelle sollte man dann jedoch in Betracht ziehen manche Funktionen (wenn möglich) in eine separate Klasse auzulagern.

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