Visual Basic 中的属性和变量之间的差异

变量和属性都表示可以访问的值。 但是,存储和实现存在差异。

变量

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

属性

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

差异

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

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

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

1 与变量不同,属性的值可能不直接对应于单个存储项。 存储可能会被拆分为多个部分以方便或出于安全考虑,或者数值可能会以加密形式存储。 在这些情况下,Get 过程将装配片段或解密存储的值,而 Set 过程将加密新值或将其拆分为各个元件存储。 属性值可能是临时的,例如一天中的时间,在这种情况下,程序会在每次访问该属性时即时计算它。

另请参阅