Visual Basic 中属性和变量的差异

更新:2007 年 11 月

变量和属性都表示可以访问的值。但在存储和实现方面有所不同。

变量

“变量”直接对应于内存位置。可以使用单个声明语句定义变量。变量可以是“局部变量”,在过程中定义且仅可用于该过程;它也可以是“成员变量”,在模块、类或结构中定义,但不在任何过程中定义。成员变量又称“字段”。

属性

“属性”是在模块、类或结构中定义的数据元素。使用 Property 和 End Property 语句之间的代码块定义属性。此代码块包含一个 Get 过程或一个 Set 过程,或两者都包含。这两个过程称为“属性过程”或“属性访问器”。除了检索或存储属性的值外,它们还可以执行自定义操作,如更新访问计数器。

不同点

下表指出了变量和属性之间的一些重要差异。

差异点

变量

属性

声明

单个声明语句

代码块中的一系列语句

实现

单个存储位置

可执行代码(属性过程)

存储

直接与变量的值关联

通常包含内部存储;在属性的包含类或模块外部,这些内部存储不可用

属性的值可能作为也可能不作为一个存储元素1存在

可执行代码

至少必须有一个过程

读写访问权限

读/写或只读

读/写、只读或只写

自定义操作(接受或返回值以外)

不可能

可以当作部分设置或检索属性值执行

1 和变量不同,属性的值可能不直接对应于单个存储项。为方便或安全起见,存储可能拆分为几块;也可能以加密格式存储值。在这些情况下,Get 过程将汇编这些块或解密存储值,然后 Set 过程会加密新值或将其拆分到构成存储的各个组成部分中。属性值可以是临时的,如一天中的某个时间,在这种情况下,每次访问此属性时,Get 过程将及时计算此属性。

请参见

任务

如何:创建属性

如何:声明具有混合访问级别的属性

如何:调用属性过程

如何:在 Visual Basic 中声明和调用默认属性

如何:在属性中放置值

如何:从属性获取值

概念

Property 过程

过程参数和变量

参考

Property 语句

Dim 语句 (Visual Basic)