СообЧа > База Знаний > Программирование > Visual Basic

Вопрос

Что значит передавать значение функции по ссылке — ByRef? C ByVal вроде бы все ясно — передали значение в функцию — и все. А в каких случаях используется byRef?

Ответ

Цитата из MSDN:

by reference

A way of passing the address, rather than the value, of an argument to a procedure. This allows the procedure to access the actual variable. As a result, the variable's actual value can be changed by the procedure to which it is passed.

В моем переводе:

По ссылке

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

т.е., передал ByValue — процедуре или функции дается КОПИЯ переменной, и если произойдет ее изменение — оно не отразится на значении переданной переменной после отработки.

Когда передаем ByRef (по умолчанию в VB) — программе передается действительный адрес переменной, и ее значение может изменитьтся в ходе выполнения процедуры/функции

Anton Lozovski

Проще говоря, если требуется просто передать значение в процедуру/функцию — используй ByVal (т.е. передать значение) Если передаваемое значение переменной изменится в вызываемой функции и его необходимо вернуть обратно используй ByRef. Но учти, что по умолчанию в VB работает ByRef.

Сергей Л.



Copyright © 2000-2004 Сообщество Чайников
Контактная информация