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


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

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

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

Изменяемые и неизменяемые элементы

Элемент программирования может быть изменяемым элементом (modifiable element), значение которого может быть изменено, или неизменяемым элементом (nonmodifiable element), который имеет фиксированное значение после его создания.

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

Изменяемые элементы

Неизменяемые элементы

Локальные переменные (объявленные внутри процедур), включая переменные объектов, за исключением доступных только для чтения

Переменные, поля и свойства доступные только для чтения

Поля (переменные-члены модулей, классов и структур) доступные только для чтения

Константы и литералы

Свойства, за исключением доступных только для чтения

Члены перечисления

Элементы массива

Выражения (даже если их элементы являются изменяемыми)

Изменяемые и неизменяемые аргументы

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

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

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

См. также

Задачи

Практическое руководство. Передача аргументов в процедуру

Практическое руководство. Изменение значения аргумента процедуры

Практическое руководство. Защита аргумента процедуры от изменения значения

Практическое руководство. Принудительная передача аргумента по значению

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

Процедуры в Visual Basic

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

Передача аргументов по значению или по ссылке

Различия между передачей аргумента по значению и по ссылке

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

Типы значений и ссылочные типы