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


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

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

Переменные

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

Свойства

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

Различия

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

Точка разницы Переменная Недвижимость
Декларация Оператор одиночного объявления Ряд инструкций в блоке кода
Внедрение Отдельное расположение хранилища Исполняемый код (процедуры свойств)
Хранение Непосредственно связанное со значением переменной Обычно внутреннее хранилище недоступно за пределами содержащего класса или модуля свойства

Значение свойства может существовать или не может существовать в качестве хранимого элемента 1
Исполняемый код Отсутствует Должна иметь по крайней мере одну процедуру
Доступ на чтение и запись Для чтения и записи или только для чтения Чтение/запись, только для чтения или только для записи
Пользовательские действия (в дополнение к принятию или возврату значений) Невозможно Может выполняться как часть установки или получения значения свойства

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

См. также