Diferenças entre argumentos modificáveis e não modificáveis (Visual Basic)
Quando você chama um procedimento, normalmente passa um ou mais argumentos para ele. Cada argumento corresponde a um elemento de programação subjacente. Os elementos subjacentes e os próprios argumentos podem ser modificáveis ou não modificáveis.
Elementos modificáveis e não modificáveis
Um elemento de programação pode ser um elemento modificável, que pode ter seu valor alterado ou um elemento não modificável, que tem um valor fixo depois de ser 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 somente leitura | Variáveis, campos e propriedades somente leitura |
Campos (variáveis membro de módulos, classes e estruturas), exceto para somente leitura | Constantes e literais |
Propriedades, exceto somente leitura | Membros de enumeração |
Elementos da matriz | Expressões (mesmo que seus elementos sejam modificáveis) |
Argumentos modificáveis e não modificáveis
Um argumento modificável é aquele 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, o código no procedimento também poderá modificar o elemento subjacente no código de chamada.
Um argumento não modificável tem um elemento subjacente não modificável ou é passado por ByVal. O procedimento não pode modificar o elemento subjacente no código de chamada, mesmo que seja um elemento modificável. Se for um elemento não modificável, o próprio código de chamada não poderá modificá-lo.
O procedimento chamado pode modificar sua cópia local de um argumento não modificável, mas essa modificação não afeta o elemento subjacente no código de chamada.
Confira também
- Procedimentos
- Parâmetros e Argumentos de Procedimento
- Como passar argumentos para um procedimento
- Passar argumentos por valor e por referência
- Diferenças entre passar um argumento por valor e por referência
- Como alterar o valor de um argumento de procedimento
- Como proteger um argumento de procedimento contra alterações de valor
- Como forçar um argumento a ser passado por Valor
- Passando argumentos por posição e nome
- Tipos de Valor e Tipos de Referência