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