Полная версия

Главная arrow Информатика arrow Базовые средства программирования на Visual Basic в среде VisualStudio. Net

  • Увеличить шрифт
  • Уменьшить шрифт


<<   СОДЕРЖАНИЕ ПОСМОТРЕТЬ ОРИГИНАЛ   >>

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

Ранее мы познакомились со «встроенными» (т.е. готовыми к употреблению) процедурами (например, Sqrt( ) ), которые в VB являются методами библиотечных классов. Мы также познакомились с процедурами обработки событий, которые являются частью пользовательского интерфейса и которые выполняются, только если происходит некоторое событие. В отличие от «встроенных процедур», эти процедуры разрабатывает разработчик проекта.

Что же собой представляют процедуры? Процедуры представляют собой отдельные блоки, из которых складывается программный код любого модуля проекта, причем желательно чтобы каждая процедура выполняла какую-то законченную задачу (функцию).

Кроме процедур обработки событий, в программный код модуля можно включить процедуры, не связанные с событиями. Они выполняют отдельные действия (функции) и могут быть использованы (вызваны) неоднократно, но с различными параметрами. Как известно, они называются методами класса. Процедуры (методы) общего назначения вызываются на выполнение из программного кода другой процедуры или класса. Использование процедур экономит время разработки приложения и позволяет избежать лишних ошибок.

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

Процедуры, которые будут рассмотрены ниже, не относятся ни к встроенным процедурам, ни к процедурам обработки событий - это общие процедуры (методы).

Общие процедуры, в отличие от процедур обработки событий, начинают выполняться не в ответ на какое-либо событие, а после их явного вызова в программном коде. После выполнения такой процедуры происходит автоматический возврат в то место программного кода, откуда процедура была вызвана.

Использование процедур предполагает, что они должны обязательно быть определены с формальными параметрами (описаны) и вызваны (должно быть к ним обращение по имени). Таким образом, каждой процедуре должно быть присвоино уникальное имя, описаны формальные параметры в круглых скобках через запятую и реализовано тело процедуры. Формальные параметры могут быть как входными и выходными.

Входные параметры процедуры - это переменные, которые должны участвовать в вычислительном процессе (реализации) процедуры. При описании процедуры перед каждым входным параметром ставиться ключевое слово ByVal.

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

В общем случае процедуры являются способом объединения набора связанных между собой элементов программного кода для выполнением конкретной задачи (алгоритма). В VB имеентся два основных типа процедур:

  • 1) Процедуры типа Function - процедуры-функции вызываются из процедур событий или других процедур по имени. Процедуры-Function часто используются для вычислений различных выражений, могут иметь входные параметры, и предназначены для возврата одного значения через свое имя.
  • 2) Процедуры типа Sub - процедуры-подпрограммы вызываются из процедур событий или других процедур по имени. Они могут иметь входные параметры и выходные параметры, значения которых могут быть получены в результате работы процедуры. Однако, в отличие от процедуры- Function, процедуры-Sub не возвращают значения, связанного с их именами.

Процедуры-Function и процедуры-Sub должны быть предварительно определы (описаны) в программном коде до их вызова.

Использование процедур предоставляет следующие преимущества:

  • • позволяет связать часто используемую группу операторов программ кода со знакомым именем;
  • • устраняет повторы фрагментов программного кода, т.е. можно один раз определить процедуру и вызывать (обращаться) любое количество раз;
  • • делает программный код проекта более простым и легко читаемым, так как, разделенный на небольшие части он легче воспринимается, оформленный в виде одного большого фрагмента;
  • • упрощает разработку проектов, так как проект, разделенный на логические (функциональные) единицы, легче разрабатывать и отлаживать; кроме того, если программный проект разрабатывается группой разработчиков, то можно обмениваться готовыми процедурами и модулями;
  • • позволяет повторно использовать процедуры в других проектах и решениях (можно легко встроить процедуры из стандартного модуля в другие программные проекты);
  • • расширяет язык VB (процедуры часто могут выполнять задачи, которые не могут быть выполнены отдельными операторами VB).

Описание процедуры-Function -это группа операторов, расположенных между ключевыми словами Function (имя формальные параметры) и End Function. Операторы в процедуре-Function выполняют работу в соответствии с заданным алгоритмом. Чтобы выполнить (вызвать) - функцию, необходимо поместить в любое допустимое выражение программного кода имя этой функции и все требуемые для нее фактические параметры.

Аргументы (формальные параметры) Процедуры-Function - это

переменные, используемые для работы функции во время ее описания, и они должны быть заключены в круглые скобки после имени и разделены запятыми. В целом использование процедуры-Function в точности совпадает с использованием встроенных функций. Процедуры, объявленные (описанные) в модуле формы, по умолчанию являются открытыми в пределах данной формы. В результате они могут использоваться (вызываться) из любой процедуры события проекта или из другой процедуры модуля формы. Описание процедуры-функции имеет следующий синтаксис:

Function ИмяФункции (ФормальныеПараметры) As ТипВозЗначения ОператорыФункции

Return значение или ИмяФункции = значение End Function

Здесь важными являются следующие синтаксические элементы:

  • ИмяФункции - это уникальное имя создаваемой функции;
  • ТипВозвЗначения - это тип значения, возвращаемого функцией, то есть тип величины, которая является результатом работы функции;
  • Формальные Параметры (аргументы) - это список необязательных аргументов, разделенных запятыми и используемых в данной функции. Каждый аргумент должен быть объявлен с указанием конкретного типа данных и типа возвращаемого значения. По умолчанию VB добавляет к каждому аргументу ключевое слово ByVal, которое указывает на то, что в функцию через данный аргумент передается копия значения фактического параметра, и все изменения значения этого аргумента не будут возвращены в вызывающую процедуру - передача параметров по значению;
  • ОператорыФупкции - это блок операторов, который выполняет работу функции.
  • • Return - это оператор, с помощью которого можно указать те места, где в блоке кода функции требуется возвратить значение в вызывающую программу, и каково это возвращаемое значение. После выполнения этого оператора происходит выход из процедуры-функции и управление передается в то место программы, откуда эта процедура-функция была вызвана.

Процедуры-Sub похожи на Процедуры-Function, за исключением того, что процедура-Sub не возвращает значение, связанное с ее именем функции. Процедуры-Sub используется список входных и выходных параметров. Синтаксис описания процедуры Sub имеет следущий вид:

Sub ИмяПроцедуры (ФормальныеПараметры)

On ераторыПроцедуры

End Sub_

Отметим следующие синтаксические элементы:

  • ИмяПроцедуры - это имя создаваемой процедуры-Sub.
  • Формальные Параметры (аргументы) - это список необязательных аргументов, разделенных запятыми, если их больше одного. Причем каждый аргумент должен быть объявлен с указанием конкретного типа данных и типа возвращаемого значения. Формальные параметры в процедуре-Sub могут быть как входные (ByVal) так и выходные (ByRef). По умолчанию VS добавляет к каждому аргументу ключевое слово ByVal, которое указывает на то, что в процедуру-подпрограмму через данный аргумент передается копия значения, и все изменения значения этого аргумента не будут возвращены в вызывающий код
  • ОператорыПроцедуры - это блок операторов, который выполняет работу процедуры по заданному алгоритму.

При вызове процедур количество и типы аргументов, передаваемых в процедуру (они называются фактическими параметрами), должны совпадать с количеством и типом аргументов, указанных при объявлении (описании) процедуры (формальными параметрами), и вся группа аргументов должна быть заключена в круглые скобки. Таким образом, количество и типы соответствующих друг другу формальных и фактических параметров должны совпадать. Если переменные, передаваемые в процедуру-Sub. изменяют свое значение при ее выполнении, то значения этих переменных не возвращаются в вызываемую процедуру, если эти аргументы не объявлены с помощью ключевого слова ByRef. Процедуры-Sub объявленные как открытые могут вызываться любой процедурой проекта.

 
<<   СОДЕРЖАНИЕ ПОСМОТРЕТЬ ОРИГИНАЛ   >>