La differenza tra ByVal e ByRef

February 23

In Visual Basic, il meccanismo di passaggio passa gli argomenti a una procedura. Questo meccanismo di passaggio è specificato con una delle due parole chiave: ". ByRef" "ByVal" o Queste parole chiave consentono di specificare se viene passato il valore di un argomento, o un riferimento al valore di un argomento viene passato dal meccanismo per la procedura. Valutare il tipo di funzionalità che ti serve e designare la parola chiave che meglio si adattano che tipo di funzionalità.

Che cosa è "ByVal"?

"ByVal" è la parola chiave che indica il meccanismo di passaggio per passare il valore di un argomento a una procedura. Quando si passa un argomento per valore, copie di Visual Basic il valore e lo inserisce in una variabile locale all'interno della procedura. La parola chiave "ByVal" è valido dichiarazioni "Declare", "funzione" affermazioni, dichiarazioni "operatore", dichiarazioni "proprietà", e le dichiarazioni "sub". Indipendentemente dal tipo di istruzione, la parola chiave "ByVal" si riferisce sempre al meccanismo di passaggio.

Che cosa è "ByRef"?

"ByRef" è la parola chiave che indica il meccanismo di passaggio per passare l'argomento per riferimento, indicato anche come un puntatore in alcuni documenti fondamentali di programmazione. Questo passa un riferimento diretto dell'argomento alla procedura. "ByRef" è la specifica di default quando si passa un argomento, ma dovrebbe comprendere le specifiche per una più facile lettura del codice da parte di altri. La parola chiave "ByRef" è valido dichiarazioni "Declare", le dichiarazioni "funzione", e le dichiarazioni "sub". Come "ByVal", "ByRef" si riferisce sempre al meccanismo di passaggio, indipendentemente dal tipo di istruzione.

L'utilizzo di "ByRef" e "ByVal"

Quale parola chiave si utilizza dipende le funzionalità necessarie e con quello che si sta lavorando. Le matrici devono essere passati per riferimento, quindi si dovrebbe sempre usare "ByRef" con una serie. Se si vuole evitare qualsiasi modifica alla tesi e il suo elemento, si può usare "ByVal". Questo perché "ByVal" non consente la modifica. Se si ha bisogno di essere in grado di apportare modifiche, usare "ByRef".

"ByRef" contro "ByVal"

La principale differenza tra "ByRef" e "ByVal" è che "ByRef" permette elemento dell'argomento da modificare e "ByVal" no. "ByVal" passa solo un valore, dove "ByRef" passa una connessione. "ByVal" protegge l'argomento e il suo elemento da qualsiasi cambiamento e "ByRef" dà accesso a fini di modifica. "ByRef" è meglio per le prestazioni in cui grandi quantità di codice sono coinvolti nella discussione perché "ByVal" avrebbe dovuto copiare tutto il codice come è passato alla procedura.