Visual Basic 中属性和变量的差异

变量和属性都表示可以访问的值。 但它们的存储和实现方式存在差异。

变量

变量直接对应于内存位置。 可使用单个声明语句定义变量。 变量可以是局部变量,也可以是成员变量,如果为前者,则在过程中定义时就只能在本过程中使用;如果为后者,则可在模块、类或结构中定义,但不能在任何过程中使用。 成员变量也称为字段。

属性

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

差异

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

差异点 变量 属性
声明 单个声明语句 代码块中的一系列语句
实现 单个存储位置 可执行代码(属性过程)
存储 与变量值直接关联 通常,内部存储在属性的包含类或模块之外不可用

属性值可能作为存储元素存在,也可能不存在 1
可执行代码 必须至少有一个过程
读取和写入访问权限 读/写或只读 读/写、只读或只写
自定义操作(接受或返回值除外) 不可用 可以在设置或检索属性值期间执行

1 与变量不同,属性的值可能与单个存储项不直接对应。 存储可能为了方便或安全而拆分为多个部分,或者值可能以加密形式存储。 在这些情况下,Get 过程将组合各部分或解密存储的值,而 Set 过程将加密新值或将其拆分到组成存储中。 属性值可能是短暂(例如一天中的时间),在这种情况下,Get 过程会在你每次访问该属性时即时计算它。

另请参阅