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.

È stato utile?

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
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top