Поделиться через


Различия между свойствами и переменными в Visual Basic

Обновлен: Ноябрь 2007

Переменные и свойства предоставляют значения, к которым можно получить доступ. Однако существуют различия в хранении и реализации.

Переменные

variable соответствует определенному месту в памяти. Можно определить переменную при помощи одиночного оператора объявления. Переменная может быть local variable, которая определена внутри процедуры и доступна только в пределах этой процедуры, или она может быть member variable, которая определена в модуле, классе или структуре, но не внутри процедуры. Переменная члена также называется field.

Свойства

property является элементом данных, определяемым для модуля, класса или структуры. Свойство определяется в блоке кода между инструкциями Property и End Property. Блок кода содержит одну из процедур Get или Set или их вместе. Эти процедуры называются property procedures или property accessors. Помимо извлечения или сохранения значений свойств, над ними также можно выполнять пользовательские действия, такие как обновление счетчика доступа.

Отличия

В следующей таблице показаны некоторые важные различия между переменными и свойствами.

Рассматриваемый параметр

Переменная

Свойство

Объявление

Одиночный оператор объявления

Последовательность инструкций в блоке кода

Реализация

Одно место хранения

Исполняемый код (процедуры свойства)

Хранение

Непосредственно связана со значением переменной

Обычно имеет внутреннее хранилище, недоступное за пределами свойства, которое содержится внутри класса или модуля

Значение свойства может существовать или не существовать в виде хранимого элемента 1

Исполняемый код

Нет

Должно иметь по крайней мере одну процедуру

Чтение и доступ на запись

Чтение/запись или только чтение

Чтение/запись или только чтение

Дополнительные действия (в дополнение к принятию или возвращению значения)

Невозможно

Может выполняться как часть задания или получения значения свойства

1 В отличие от переменной, значение свойства может не соответствовать непосредственно одному элементу хранилища. Хранилище может быть разбито на части для удобства или безопасности, или значение может храниться в зашифрованном виде. В этих случаях процедура Get будет собирать фрагменты или расшифровать хранимое значение и процедура Set будет шифровать новое значение или разбивать его на составные части хранилища. Значение свойства может быть временным, например, время дня, в этом случае процедура Get будет вычислять его на лету при каждом обращении к свойству.

См. также

Задачи

Практическое руководство. Создание свойства

Практическое руководство. Объявление свойства со смешанным уровнем доступа

Практическое руководство. Вызов процедуры Get свойства

Практическое руководство. Объявление и вызов свойства по умолчанию в Visual Basic

Практическое руководство. Запись значения в свойство

Практическое руководство. Получение значения из свойства

Основные понятия

Процедуры свойств

Параметры и аргументы процедуры

Ссылки

Оператор Property

Оператор Dim (Visual Basic)