更新:2007 年 11 月
调用一个过程时,通常要将一个或多个参数传递到该过程。每个参数对应于一个基础编程元素。基础元素和参数本身都是可更改或不可更改。
可更改和不可更改元素
编程元素可能是“可更改元素”(它的值可以更改),也可能是“不可更改元素”(该元素创建后它的值即为固定值)。
下表列举了可更改和不可更改编程元素。
| 可更改元素 | 不可更改元素 | 
|---|---|
| 局部变量(在过程内声明),包括对象变量,不包括只读变量 | 只读变量、字段和属性 | 
| 字段(模块的成员变量、类和结构),不包括只读字段 | 常数和文本 | 
| 属性,不包括只读属性 | 枚举成员 | 
| 数组元素 | 表达式(即使元素可更改) | 
可更改和不可更改参数
“可更改参数”是一个带有可更改基础元素的参数。调用代码任何时候都可以存储一个新值,而且如果您传递参数 ByRef,过程中的代码还可以更改调用代码中的基础元素。
“不可更改参数”具有不可更改的基础元素或者传递的方式为 ByVal。过程不能更改调用代码中的基础元素,即使基础元素为可更改元素。如果是不可更改元素,调用代码本身无法更改它。
被调用过程可以更改它的不可更改参数的本地副本,但更改不会影响到调用代码中的基础元素。