Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Структуры переключений
Обычно структуры такого рода используется тогда, когда некоторый код нужно неоднократно выполнять в разных местах. В VB.NET средства структур переключений относятся к двум видам: функций и процедур. Единственная разница между ними состоит в том, что функции передают информацию тому, кто их вызвал на выполнение, а процедуры — нет. Другими словами, функции вычисляют значения, а процедуры выполняют действия.
Процедуры
Процедуры (иногда их называют подпрограммами) имеют следующий формат:
Sub имя (параметры)
код
End Sub
<% Page Language="VB" *>
2:
3: <script runat="server">
4: sub Page_load(obj as object, e as eventargs)
5: MultiplyNumbers(8,9)
6'
7: MultiplyNumbers (4,12)
8: "':"
9: MultiplyNumbers(348,23)
10: end sub
11:
12: sub MultiplyNumbers(intA as integer, intB as integer)
13: Response.Write(intA * intB & "<br>")
14: end sub
15: </script>
В блоке объявления кода, в строке 12 создается процедура MultiplyNumbers.
Находящиеся в скобках переменные называются параметрами или аргументами. Их значения передаются в процедуру, которая их будет использовать.
И Эти значения процедура может использовать при выполнении любых нуж-
ных ей действий.
В строке 5 происходит вызов процедуры. Он дает указание программе,
чтобы та выполнила код, находящийся внутри процедуры, а затем, после
его выполнения, вернулась снова в строку 5. (Именно здесь можно уви-
деть, как работает структура переключений.) При вызове MultiplyNumbers
надо указывать два значения типа Integer — по одному для каждого па-
раметра, определяемого этой процедурой. MultiplyNumbers берет эти зна-
чения и выполняет свои действия.
Функции
Функции очень похожи на процедуры: у тех и других почти идентичный синтаксис,
и они могут выполнять одни и те же действия. Однако функции отличаются тем, что
могут отправлять свое значение вызвавшему их коду.
1: <% Page Language="VB" %>
2:
3: <script runat="server">
4: sub Page load(obj as object, e as eventargs)
5: Response.Write(MultiplyNumbers(8,9) & "<br>")
6:
7:Response.Write(MultiplyNumbers(4,12) & "<br>")
8:
9: Response.Write(MultiplyNumbers(348,23) & "<br>")
10: end sub
И:
12: function MultiplyNumbers(intA as integer, intB as integer) _
13: as Integer
14: Return intA * intB
15: end function
16:" </script>
Этот код немного отличается от того, что приведен в листинге 3.8. Первое отличие состоит в том, что функция, которая находится в строке 12,
произведение двух параметров в броузер не пишет. Вместо этого она ис-
пользует ключевое слово return (возврат), чтобы отправить произведение
назад — тому коду, который вызвал эту функцию. Обратите внимание,
что функция после списка параметров еше указывает As Integer. Это де-
лается для того, чтобы сообщить коду, вызвавшему функцию, какого ти-
па данные следует ожидать от этой функции. В VB.NET есть два
способа передавать назад значение функции. Первый вы уже видели — это примене-
ние ключевого слова return. Второй же состоит в том, чтобы передаваемое назад зна-
чение присваивать самой функции.
12: function MultiplyNumbers(intA as integer, intB as integer) _
13: as integer
14: MultiplyNumbers = intA * intB
15: end function
Всегда при объявлении функции указывайте тип значения, которое должно
передаваться этой функцией. Таким образом, код будет легче читать, и,
кроме того, возрастет безопасность, связанная с типами данных.
Необязательные параметры
function MultiplyNumbers(intA as integer, optional intB as integer = 3)
as Integer
return intA * intB
end function
Ключевое слово optional, расположенное в первой строке, используется, чтобы со-
общить VB.NET следующее: не нужно, чтобы любой код, вызывая эту функцию, обя-
зательно указывал значение для intB, но такая возможность не исключена. Функцию
из этого примера можно вызывать одним из двух способов:
MultiplyNumbers(8)
MultiplyNumbers(8,9)
Что же происходит, когда код не указывает значение? В третьей строке вы пере-
множаете два значения. Если параметр указывается как необязательный, то для него следует указать значение по умолчанию. Нужный для этого код как раз и находится в первой строке: optional intB as integer = 3. Таким образом, VB.NET будет знать, что если значение для intB не указано, то тогда надо использовать 3.
Применяя ключевое слово optional, следует знать вот что: как только с помощью
этого слова какой-либо параметр объявляется необязательным, то необязательными
становятся и все остальные, то есть следующие за ним параметры. Вот код, который
должен привести к ошибке:
function MultiplyNumbers(intA as integer, optional intB as integer = 3, intC as integer) as Integer
Поэтому вместо него надо использовать
function MultiplyNumbers(intA as integer, optional intB as integer = 3, optional intC as integer = 4) as Integer
Обработчики событий
Обычно, какое бы событие ни случилось, его следует каким-то образом обработать. Для этого надо создать обработчик события. Его синтаксис идентичен тому, который используется для процедуры. Различие между этими синтаксисами заключено в списке параметров. Когда событие вызвано, иначе говоря, произошло, тогда оно создает переменные, которые его описывают. Эти переменные обработчик события как раз может
использовать, чтобы определить, какие действия ему необходимо сделать.
1: <% Page Language="VB" %>
2:
3: <script runat="server">
4: Sub Button_Click(obj As Object, e As EventArgs)
5: Response.Write("Вы щелкнули на кнопке!")
6: End Sub
7: </script>
8:
9: <html><body>.
10: <form runat="server">
11: <asp:button id="btSubmit" Text="Подтвердить"
12: runat=”server”
13: OnClick="Button_Click"> <p>
14: </form>
15: </body></html>
В строке 4 находится то, что можно принять за обычную процедуру. Од-
нако благодаря списку параметров видно, что на самом деле это обработ-
чик событий. Первый из этих параметров имеет тип данных Object и
представляет тот объект, который как раз и вызвал событие. А второй параметр имеет тип данных, который вам еще не встречался — это тип
р данных EventArgs (аргументы события). Второй параметр содержит любую информацию, которая относится к происшедшему событию. Обычно
эта переменная пустая. Вот вам и список параметров, который, как пра-
вило, используется обработчиками событий. В строке 13 вы даете кнопке следующее указание: "Когда происходит событие Click, выполняй процедуру Button Click." Так что вы всего-навсего определили обработчик события.
И теперь при любом щелчке на кнопке этот обработчик выполняет процедуру со
строк 4-6 и записывает в броузер сообщение: "Вы щелкнули на кнопке!". Обычно в ASP.NET события можно обрабатывать только тогда, если, создающий эти события код находится между дескрипторами
<form>...</form>. Причина этого в том, что информация о событиях должна передаваться на сервер.
Дата публикования: 2015-02-03; Прочитано: 351 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!