Diferenças entre argumentos modificáveis e não modificáveis (Visual Basic)
Quando você chama um procedimento, você normalmente passa um ou mais argumentos para ele. Cada argumento corresponde a um elemento de programação subjacente. Tanto os elementos subjacentes e os próprios argumentos podem ser tanto modificáveis ou não modificáveis.
Elementos modificável e Não-modificável
Um elemento de programação pode ser tanto um elemento modificável, o qual pode ter seu valor alterado, ou um elemento não modificável, que tem um valor fixo após ele ter sido criado.
A tabela a seguir lista elementos de programação modificáveis e não modificáveis.
Elementos modificáveis |
Elementos não modificáveis |
---|---|
Variáveis locais (declaradas dentro de procedimentos), incluindo variáveis de objeto, exceto para somente leitura |
Variáveis somente-leitura, campos e propriedades |
Campos (membro variáveis de módulos, classes e estruturas), exceto para somente leitura |
Literais e constantes |
Propriedades, exceto para somente leitura |
Membros de enumeração |
Elementos da matriz |
Expressões (mesmo se seus elementos são modificáveis) |
Elementos modificáveis e não modificáveis
Um argumento modificável é uma com um elemento subjacente modificável. O código de chamada pode armazenar um novo valor a qualquer momento, e se você passar o argumento ByRef (Visual Basic), o código no procedimento também pode modificar o elemento subjacente no código de chamada.
Um argumento não modificável possui um elemento subjacente não modificável ou é passado ByVal (Visual Basic). O procedimento não pode modificar o elemento subjacente no código de chamada, mesmo se ele for um elemento modificável. Se ele é um elemento não modificável, o próprio código de chamada não pode modificá-lo.
O procedimento chamado pode modificar sua cópia local de um argumento não modificável, mas esta modificação não afeta o elemento sunjacente no código de chamada.
Consulte também
Tarefas
Como passar argumentos para um procedimento (Visual Basic)
Como alterar o valor de um argumento de procedimento (Visual Basic)
Como proteger um argumento de procedimento contra alterações de valor (Visual Basic)
Como forçar um argumento a ser passado por valor (Visual Basic)
Conceitos
Parâmetros e argumentos de procedimento (Visual Basic)
Passando argumentos por valor e por referência (Visual Basic)
Diferenças entre passar um argumento por valor e por referência (Visual Basic)