Qual è pro ei contro di procedure in VB.NET chiamando?
Domanda
Mi piacerebbe conoscere i pro ei contro di procedure con la chiamata di parola chiave e senza chiamate in VB.NET chiamare?
Private Sub ProOne()
' Code Are Here
End Sub
Private Sub Calling()
ProOne() ' I would like to know pros and cons of this
Call ProOne() ' And I would like to know pros and cons of this
End Sub
Grazie in anticipo tutti.
Soluzione
qui :
Normalmente si utilizza l'istruzione Chiama per chiamare una procedura che non è così restituire un valore. Se la procedura restituisce un valore, l'istruzione Call scarta.
Non è necessario utilizzare l'istruzione Call quando si chiama un procedura. Tuttavia, migliora la leggibilità del codice.
Quindi, in sostanza, ProOne () e Call ProOne () sono semanticamente equivalenti.
Altri suggerimenti
Non ci sono professionisti, e non ci sono contro.
La parola chiave Call è una parola chiave eredità anziani dialetti VB.
In VB.net non ha alcun significato, ed è lo zucchero syntatic.
Un uso interessante che ho trovato ( R # suggerito), è stato quando è necessario creare un'istanza solo per chiamare un unico metodo e poi segnarlo per la garbage collection.
Non sono sicuro se sto mantenendolo però.
Ad esempio
Call (new MyType()).MySub()
equivalente di
dim anInstance = new MyType
anInstance.MySub
Anche se sono tecnicamente equivalenti, direi di non usare "Chiama". Quando si passa da VB6 a VB.Net, è importante realizae che sono completamente diverse lingue che devono essere scritto per in modi completamente diversi. Purtroppo, Microsoft ha voluto fornire il supporto per gli sviluppatori VB6, e hanno fornito questo con l'aggiunta di funzionalità che simula la funzionalità VB6, ma è siginificantly inferiore all'equivalente .Net.
Taglio ogni legame con uno dei reduci VB6 farà sviluppatori smettere di usare questi bit il più rapidamente possibile, e portano ad una migliore uscita del codice.
Da documentazione
Trasferisce il controllo a una funzione, Sub, o libreria a collegamento dinamico (DLL) procedura. [Chiama] ProcedureName [ (ListaArgomenti)]
così,
Normalmente si utilizza l'istruzione Chiama per chiamare una procedura che non restituisce un valore. Se la procedura restituisce un il valore, l'istruzione Call scarta.
Non è necessario utilizzare il Call dichiarazione quando si chiama una procedura. Tuttavia, migliora la leggibilità del codice.
L'istruzione Call ha ancora rilevanza, anche nel 2019: ". Di solito si utilizza la parola chiave di chiamata quando la chiamata espressione non inizia con un identificatore uso della parola chiave di chiamata per altri usi non è raccomandato"
chiamata Statement (Visual Basic )
MSDN esempio di codice:
Sub TestCall()
Call (Sub() Console.Write("Hello"))()
Call New TheClass().ShowText()
End Sub
Class TheClass
Public Sub ShowText()
Console.Write(" World")
End Sub
End Class