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


Различия между модификируемыми и немодификируемыми аргументами (Visual Basic)

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

Модификируемые и немодификируемые элементы

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

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

Модификируемые элементы Неизменяемые элементы
Локальные переменные (объявленные внутри процедур), включая переменные объекта, кроме переменных только для чтения Переменные только для чтения, поля и свойства
Поля (переменные-члены модулей, классов и структур), за исключением полей, доступных только для чтения Константы и литералы
Свойства, кроме свойств только для чтения Элементы перечисления
Элементы массива Выражения (даже если их элементы изменяются)

Модификируемые и неизменяемые аргументы

Модификируемый аргумент — это один с модификируемым базовым элементом. Вызывающий код может хранить новое значение в любое время, и если вы передаете аргумент ByRef, код в процедуре также может изменить базовый элемент в вызывающем коде.

Немодифицируемый аргумент либо имеет неизменяемый базовый элемент, либо передается ByVal. Процедура не может изменить базовый элемент в вызывающем коде, даже если он является модификируемым элементом. Если это немодируемый элемент, вызывающий код не может изменить его.

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

См. также