Partilhar via


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. Tanto os elementos subjacentes como 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 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 somente leitura Constantes e literais
Propriedades, exceto somente leitura Membros da enumeração
Elementos de 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 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.

Consulte também