Опубликован: 31.08.2006 | Уровень: специалист | Доступ: платный
Лекция 11:

Использование модулей и процедур

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

В этой лекции вы узнаете, как:

  • создавать стандартные модули;
  • объявлять и использовать открытые переменные с глобальной областью видимости;
  • создавать пользовательские функции и процедуры, в целом известные как подпрограммы;
  • вызывать пользовательские процедуры.

Изучив программы и выполнив упражнения из лекций с "Открытие и запуск программы в Visual Basic .NET" по "Перехват ошибок с помощью структурной обработки ошибок" , вы спокойно можете назвать себя средним программистом на Visual Basic. Вы изучили основы программирования на Microsoft Visual Basic .NET, и у вас есть навыки, необходимые для создания полезных утилит. В части 3 этой книги вы узнаете, как писать более сложные программы на Visual Basic. Начнем с изучения того, как создавать стандартные модули.

Стандартный модуль - это отдельная часть программы, которая содержит глобальные, или открытые, переменные и процедуры типа Function и Sub. В этой лекции вы узнаете, как объявлять и использовать открытые переменные. Вы также узнаете, как создавать ваши собственные процедуры, и как вызывать их. Полученные вами при этом навыки будут особенно полезны при создании больших программных проектов.

Что нового в Visual Basic .NET?

  • Стандартные модули по-прежнему поддерживаются в Visual Basic .NET, но теперь в них есть ключевые слова Module и End Module, которые обрамляют содержимое модуля в Редакторе кода. Открытые переменные объявляются в стандартных модулях так, как это делалось в Visual Basic 6.
  • Visual Basic .NET продолжает поддерживать ключевые слова Function и Sub, позволяя создавать ваши собственные процедуры. Однако синтаксис объявления и вызова подпрограмм на Visual Basic несколько изменился.
  • Если вы используете для объявления переменных настройку по умолчанию Option Explicit, то при объявлении функций также рекомендуется использовать объявление с указанием конкретного типа. Также рекомендуется указывать все типы в списке аргументов вашей процедуры. Если вы не присваиваете тип с помощью ключевого слова As, Visual Basic будет использовать для параметра тип по умолчанию Object - тип данных, который обычно менее эффективен, чем какой-то конкретный тип.
  • В Visual Basic .NET изменился способ передачи аргументов в процедуры. В Visual Basic 6 механизмом по умолчанию для передачи аргументов была передача по ссылке ( ByRef ), что означало, что изменения в аргументах в рамках процедуры будут переданы обратно в вызывающий код. В Visual Basic .NET способом передачи аргументов по умолчанию является передача по значению ( ByVal ), что означает, что изменения в аргументах в рамках процедуры не передаются обратно в вызывающий код. Вы можете явно указать поведение передаваемых аргументов, используя при объявлении аргументов ключевые слова ByRef или ByVal. Если необходимо, можно указать ByRef, чтобы получить ту же функциональность, которая была в Visual Basic 6.
  • При вызове процедур в Visual Basic .NET вокруг списка аргументов требуется наличие пары круглых скобок. Среда разработки Microsoft Visual Studio добавит их для вас сама - даже если ваши процедуры не требуют никаких аргументов. (Скобки будут добавлены, даже если аргументы не требуются.)
  • Теперь у программистов есть возможность использовать оператор Return, с помощью которого результат вычисления функции передается обратно в вызывающую процедуру. Также поддерживается и старый метод - присвоение значения имени функции.

Работа со стандартными модулями

Когда вы будете писать длинную программу, у вас, скорее всего, будет несколько форм и процедур событий, которые используют одни и те же переменные и процедуры. По умолчанию переменные локальны для процедуры события, что означает, что они могут быть прочитаны и изменены только в той процедуре события, в которой они созданы. Вы также можете объявить переменные в верхней части программного кода формы и присвоить переменным более широкую область видимости, распространяющуюся на всю форму. Однако если вы создаете в проекте несколько форм, переменные, объявленные в верхней части формы, будут доступны только в той форме, в которой они объявлены. Точно также, процедуры событий по умолчанию объявляются как частные ( private ) и являются локальными для той формы, в которой они созданы. Например, нельзя вызвать процедуру события Button1_Click из второй формы с именем Form2, если процедура события объявлена в Form1 как частная.

Примечание. О том, как добавлять в проект дополнительные формы, речь пойдет в "Управление формами Windows" .

Чтобы сделать переменные и процедуры доступными для всех форм и процедур событий проекта, их можно объявить в одном или нескольких стандартных модулях проекта. Стандартный модуль, или модуль кода, - это специальный файл с расширением .vb. Он содержит переменные и процедуры, которые могут быть использованы в любом месте программы. (В предыдущей версии Visual Basic модули имели расширение .bas.) Точно так же, как и в случае с формами, стандартные модули показаны в Solution Explorer (Обозреватель решений) отдельно, и стандартный модуль может быть сохранен на диск с помощью команды Save Module1 As (Сохранить Module1 как) из меню File (Файл) . Однако, в отличие от форм, стандартные модули содержат только код и не имеют интерфейса пользователя.

Стандартный модуль

Чтобы создать новый стандартный модуль в программе, щелкните на кнопке Add New Item (Добавить компонент) на стандартной панели инструментов или на команде Add New Item (Добавить компонент) в меню Project (Проект). Откроется диалоговое окно, которое позволит выбрать шаблон Module и запросит у вас имя этого модуля. После этого в Редакторе кода появится новый пустой модуль. Первый стандартный модуль программы имеет имя по умолчанию Module1.vb, но вы можете изменить это имя, щелкнув правой кнопкой мыши на модуле в Обозревателе решений или с помощью команды Save Module1.vb As (Сохранить Module1.vb как) из меню File (Файл). Попробуйте создать в проекте пустой стандартный модуль.

Сайдахмад Зарипов
Сайдахмад Зарипов
Жанболат Шаймерден
Жанболат Шаймерден

Можно ли выбирать язык для надписей и команд в среде разработки?

Виталий Григорьев
Виталий Григорьев
Россия, москва, мгсги, 2011
Надежда Серекпаева
Надежда Серекпаева
Россия, Тюмень, Тюменский индустриальный институт, 1992