Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > VB .NET > ByRef vs ByVal |
Автор: ivashkanet 13.6.2006, 17:02 |
Всем привет, возник такой вопрос: Событие в обработчик поступает с двумя параметрами: sender and eventargs по умолчанию они byval. Не значит ли это что идет копирование sender и eventargs в новый объект (ИМХО, да)? Если так, то лучше поставить его byref. Зачем создавать клон объекта, ведь это ест время ![]() Заранее спасибо. Выслушаю любое ваше мнение. P.S. В C# все было хорошо, все объекты итак, по умолчанию, передавались по ссылке. |
Автор: Akina 13.6.2006, 17:27 |
чтобы процедура, прерванная обработчиком, не обнаружила внезапное изменение переменной, собсно... |
Автор: Exception 13.6.2006, 18:20 | ||||
http://msdn.microsoft.com/library/en-us/vbcn7/html/vaconargumentpassingbyvalue.asp
То есть это примерно то же самое, что работать с константой:
Таким образом, никакого копирования не проишодит - просто объект нельзя "подменить". А вот структурные типы (производные от System.ValueType) копировались бы. |
Автор: ivashkanet 13.6.2006, 18:24 |
Akina, Exception, спасибо большое. |
Автор: Exception 13.6.2006, 18:28 |
Не за что, заходи ещё ![]() |
Автор: ivashkanet 14.6.2006, 09:34 |
А я и не ухожу ![]() |