Oppure

Loading
26/05/11 17:54
Question
Ciao a tutti,
oggi stavo programmando una cosa e mi è venuto un dubbio di cui mi piacerebbe sapere la vostra opinione :yup:

Se io ho una procedura che esegue diverse operazioni ed ho il bisogno di chiamarla più volte nel corso del programma compreso il load della form, è più conveniente in fatto di risorse mettere queste istruzioni nell'handler del Load e poi richiamarlo passandogli Nothing come argomenti, oppure creare e chiamare una sub senza argomenti?
Forse il codice parlerà più chiaro:


Public Class Form
    Private Sub Form_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        MessageBox.Show("Hello World!", "Hello")
    End Sub

    Private Sub MyObject_MyEvent(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyObject.MyEvent
        Form_Load(Nothing, Nothing)
    End Sub
End Class


Public Class Form
    Private Sub Form_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        HelloWorld()
    End Sub

    Private Sub MyObject_MyEvent(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyObject.MyEvent
        HelloWorld()
    End Sub

    Private Sub HelloWorld()
        MessageBox.Show("Hello World!", "Hello")
    End Sub
End Class



So bene che, nel caso ci fosse, la differenza sarebbe minimale, ma mi piacerebbe saperlo comunque :k:
Ultima modifica effettuata da Question 26/05/11 17:57
aaa
26/05/11 18:34
HeDo
indifferente in qualsiasi ambito.

Edit: intendo qualsiasi ambito legato alle performance, ovviamente per la modularità del codice la scelta della sub a parte non si discute...
Ultima modifica effettuata da HeDo 26/05/11 20:54
aaa
26/05/11 19:29
R0gerBlack
Personalmente preferisco la Sub senza argomenti, puoi dividere una grande azione in più Sub che ognuna fa il suo lavoro potendole richiamare singolarmente insieme, è più ordinato ed è una soluzione che adotto tutte le volte che mi capita di dover ripetere del codice contenuto in un controllo o nel Form1_Load.Pensa se il Form1_Load facesse altro oltre che eseguire le righe di codice in una Sub (come capita in tutti i programmi decenti), in quel caso non si potrebbe richiamare perché non si richiamerebbe solo quel codice.
In questo caso non è indifferente, perché dividendo in Sub, si renderebbe quella parte del codice richiamabile singolarmente, evitando di ripetere altro codice nel Form1_Load e quindi facendo un codice più ordinato e ottimizzato.

Quindi opterei personalmente sul secondo esempio che hai scritto.
aaa