No Visual Basic, o mecanismo de passagem passa argumentos para um procedimento. Este mecanismo de passagem é especificada com uma das duas palavras-chave: " . ByRef " " ByVal " ou Essas palavras-chave permitem que você especifique se o valor de um argumento é passado , ou uma referência para o valor de um argumento é passado pelo mecanismo do procedimento. Avaliar o tipo de funcionalidade que você precisa e designar a palavra-chave que melhor atender esse tipo de funcionalidade. O que é " ByVal " ?
" ByVal " é a palavra-chave que instrui o mecanismo de passagem para passar o valor de um argumento para um procedimento. Quando você passar um argumento por valor, o Visual Basic copia o valor e insere -lo em uma variável local dentro do procedimento. A palavra-chave " ByVal " é válida em "declarar" as declarações, "Função" declarações , "operador" declarações, declarações "propriedade", e declarações de "Sub" . Independentemente do tipo de declaração , a palavra-chave " ByVal " sempre se refere ao mecanismo de passagem .
O que é " ByRef " ?
" ByRef " é a palavra-chave que instrui o mecanismo de passagem para passar o argumento por referência , também referido como um ponteiro em alguns fundamentos documentação de programação . Isso passa uma referência direta do argumento para o procedimento. " ByRef " é a especificação padrão ao passar um argumento, mas deve-se incluir a especificação para facilitar a leitura do código por outros. A palavra-chave " ByRef " é válido em declarações "declarar" , "Função" declarações e declarações de "Sub" . Like " ByVal ", " ByRef " sempre se refere ao mecanismo de passagem , independentemente do tipo comunicado.
Uso de " ByRef " e " ByVal "
que palavra-chave que você usa depende da funcionalidade que você precisa e com o que você está trabalhando. Matrizes devem ser passados por referência , para que sempre usaria " ByRef " com uma matriz . Se você quer evitar qualquer modificação do argumento e seu elemento , você usaria " ByVal " . Isto é porque " ByVal " não permite a modificação . Se você precisa fazer para ser capaz de fazer modificações, usar " ByRef " .
" ByRef " versus " ByVal "
A principal diferença entre " ByRef " e " ByVal " é que " ByRef " permite elemento do argumento a ser modificado e " ByVal " não. " ByVal " passa apenas um valor , onde " ByRef " passa uma conexão. " ByVal " protege o argumento e seu elemento de qualquer mudança e " ByRef " dá acesso para fins de modificação. " ByRef " é melhor para o desempenho , onde grandes quantidades de código estão envolvidos no argumento porque " ByVal " teria que copiar todo o código , uma vez que passado para o procedimento .
< Br >