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

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

变量

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

性能

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

差异

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

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

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

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

另请参阅