可更改和不可更改参数之间的差异

更新:2007 年 11 月

调用一个过程时,通常要将一个或多个参数传递到该过程。每个参数对应于一个基础编程元素。基础元素和参数本身都是可更改或不可更改。

可更改和不可更改元素

编程元素可能是“可更改元素”(它的值可以更改),也可能是“不可更改元素”(该元素创建后它的值即为固定值)。

下表列举了可更改和不可更改编程元素。

可更改元素

不可更改元素

局部变量(在过程内声明),包括对象变量,不包括只读变量

只读变量、字段和属性

字段(模块的成员变量、类和结构),不包括只读字段

常数和文本

属性,不包括只读属性

枚举成员

数组元素

表达式(即使元素可更改)

可更改和不可更改参数

“可更改参数”是一个带有可更改基础元素的参数。调用代码任何时候都可以存储一个新值,而且如果您传递参数 ByRef,过程中的代码还可以更改调用代码中的基础元素。

“不可更改参数”具有不可更改的基础元素或者传递的方式为 ByVal。过程不能更改调用代码中的基础元素,即使基础元素为可更改元素。如果是不可更改元素,调用代码本身无法更改它。

被调用过程可以更改它的不可更改参数的本地副本,但更改不会影响到调用代码中的基础元素。

请参见

任务

如何:将参数传递给过程

如何:更改过程参数的值

如何:防止过程参数的值被更改

如何:强制通过值传递参数

概念

Visual Basic 中的过程

过程参数和变量

通过值和通过引用传递参数

通过值传递参数和通过引用传递参数之间的差异

通过位置和通过名称的参数传递

值类型和引用类型