Различия между аргументами Modifiable и Nonmodifiable (Visual Basic)

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

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

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

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

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

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

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

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

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

См. также