vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
TOP-Angebot: 17 bzw. 24 Entwickler-Vollversionen zum unschlagbaren Preis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Re: Prozeduren in eigener Klasse auslagern 
Autor: Bismosa
Datum: 26.08.11 10:03

Hallo!

Danke für den Buchtipp! Das hatte ich dort noch nicht entdeckt. Werde ich mir mal genauer anschauen.

Ich habe trotzdem etwas "gespielt". Ich finde diesen Weg über eine Klasse zwar wartbarer und wiederverwendbar aber auch aufwendiger (wenn bestimmt auch schlecht geschrieben)
Ein sehr vereinfachtes Beispiel.

So die ürsprüngliche Sub:
    ''' <summary>
    ''' Gibt in einer Messagebox das Projekt zu einem Dokument aus
    ''' </summary>
    ''' <remarks></remarks>
    Private Sub GetProjekt()
        Dim Dokument As PDMWorks.PDMWDocument
        Dim Projekt As String
        Dokument = Connection.GetSpecificDocument("Doppelnippel Konisch.SLDPRT")
        TSLblInfo.Text = "Das Dokument " & Dokument.Name & " wird angefordert."
        Projekt = Dokument.project
 
        MsgBox(Projekt)
        TSLblInfo.Text = "Fertig"
    End Sub
Und nun das ganze mit einer Klasse:
Mainform:
    ''' <summary>
    ''' In Main-Form. 
    ''' Gibt in einer Messagebox das Projekt zu einem Dokument aus.
    ''' </summary>
    ''' <param name="sender"></param>
    ''' <param name="e"></param>
    ''' <remarks>
    ''' Der Handler updated ein Label auf der Form das den aktuellen Status 
    ' wiedergeben soll.
    ''' </remarks>
    Private Sub EDrawingsCLSToolStripMenuItem_Click(ByVal sender As _
      System.Object, ByVal e As System.EventArgs) Handles _
      EDrawingsCLSToolStripMenuItem.Click
 
        Dim EDRW As New EDrawingsCLS
        AddHandler EDRW.UpdateLabel, AddressOf LabelUpdate
        Dim Projekt As String
        Projekt = EDRW.GetProjekt(Connection, "Doppelnippel Konisch.SLDPRT")
        RemoveHandler EDRW.UpdateLabel, AddressOf LabelUpdate
 
        LabelUpdate("Fertig")
    End Sub
 
    ''' <summary>
    ''' Updated das InfoLabel
    ''' </summary>
    ''' <param name="Text">Der Einzutragende Text</param>
    ''' <remarks></remarks>
    Public Sub LabelUpdate(ByVal Text As String) 
        TSLblInfo.Text = Text
    End Sub
EDrawingsCLS:
''' <summary>
''' Enthällt Befehle für die Verarbeitung mit Hilfe eines EDrawings 
' Steuerelementes
''' </summary>
''' <remarks>
''' Zunächst nur für Testzwecke!
''' </remarks>
''' 
Public Class EDrawingsCLS
    Public Event UpdateLabel(ByVal text As String)
 
#Region "Test Projekt"
    ''' <summary>
    ''' Test! Gibt das Projekt von einem Dokument aus.
    ''' </summary>
    ''' <param name="con">Die Verbindung</param>
    ''' <param name="Dokument">Als String das Dokument</param>
    ''' <returns>String mit dem Projekt</returns>
    ''' <remarks></remarks>
    Public Function GetProjekt(ByVal con As PDMWorks.PDMWConnection, ByVal _
      Dokument As String)
        Dim Dok As PDMWorks.PDMWDocument
 
        RaiseEvent UpdateLabel("Das Dokument " & Dokument & " wird" & _
          "angefordert.")
        Dok = con.GetSpecificDocument(Dokument)
 
        Return Dok.project
 
    End Function
#End Region
 
End Class
Die Frage die sich gerade dabei stellt ist, ob es wirklich sinnvoll ist bei jedem Aufruf (Wenn es sich z.B. um die Prozedur für das Drucken von Dokumenten handelt) eine neue Instanz auf die EDrawingsCLS zu erzeugen. Da kommen mal schnell 30 Aufrufe hintereinander.

Das ist natürlich nur ein sehr verkürztes (und sinnfreies) Beispiel. Wenn ich z.B. einen Druckauftrag starten würde, bräcuhte ich ca. 10 Übergabevariablen und evtl. noch ein oder zwei Events mehr. In der Form habe ich das noch nirgends gesehen.

Gruß
Bismosa
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Prozeduren in eigener Klasse auslagern2.488Bismosa25.08.11 10:39
Re: Prozeduren in eigener Klasse auslagern1.574CLL25.08.11 14:01
Re: Prozeduren in eigener Klasse auslagern1.318Bismosa25.08.11 16:13
Re: Prozeduren in eigener Klasse auslagern1.532ModeratorFZelle25.08.11 21:05
Re: Prozeduren in eigener Klasse auslagern1.589Bismosa26.08.11 10:03

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel