
- •Язык блок-схем программ
- •Классические варианты блок-схем
- •Разновидности процедур
- •Процедура типа Sub
- •Процедура типа Function
- •Процедура типа Property
- •Функции аргументов процедур Sub
- •Передача параметров
- •Объявление и присвоение переменной значения (как и для константы) может осуществляться в одной строке, например, для предыдущего кода:
- •Это обеспечивает большую компактность и ясность кода. Лямбда-выражение
- •Делегаты
Объявление и присвоение переменной значения (как и для константы) может осуществляться в одной строке, например, для предыдущего кода:
Dim refstrB As String = "Здравствуй, мир!"
Это обеспечивает большую компактность и ясность кода. Лямбда-выражение
Лямбда-выражение вводится с целью большей компактности кода при передаче значения, возвращаемого функцией. Выражение представляет собой некоторую безымянную функцию Function(x). При применении выражения используются различные варианты записи функции, например:
Dim x As Integer
Private Sub Button1_Click()
Dim A = Function(x) x * 20
MsgBox(A(5)) 'результат: 5 * 20 = 100
Console.WriteLine(A(15)) 'результат в окне "Вывод": 15 * 20 = 300
End Sub
Private Sub Button2_Click()
Dim B = Function(x)
Return x * 10 'лямбда-выражение используется с функцией Return
End Function '(возврат), при этом оператор Function(x) опускается
MsgBox(B(5)) 'результат: 5 * 10 = 50
MsgBox(B(15)) 'результат в окне "Интерпретация": 15 * 10 = 150
End Sub
Private Sub Button3_Click()
Dim C = Function(x As Integer) x ^ 4
MsgBox(C(5)) 'результат: x ^ 4 = 625
Console.WriteLine(C(2)) 'результат визуализируется в окне "Вывод": х ^ 4 = 16
End Sub
В третьем варианте объявление переменной x осуществляется не в разделе объявлений модуля, а непосредственно в процедуре, что обеспечивает ещё большую компактность кода.
Делегаты
Делегаты — это объекты, которые ссылаются на методы. Применение делегатов эффективно, когда необходимо посредничество между вызывающей и вызываемой процедурами. Например, необходимо, чтобы объект, создающий события, мог вызвать какой-либо обработчик событий. Visual Basic позволяет динамически связывать обработчики событий с вызывающими событиями путем создания делегата, использующего оператор AddHandler.
Создаётся процедура нажатия кнопки Button1:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e_As_
System.EventArgs) Handles Button1.Click
TextBox1.Text = " TextBox1.Text = "При любой коррекции фразы цвет шрифта изменяется на красный!"
AddHandler TextBox1.TextChanged, AddressOf СменаЦвета
End Sub
Оператор AddHandler TextBox1.TextChanged, AddressOf СменаЦвета это делегат, который при коррекции текста пользователем выполняет операцию вызова процедуры с именем "СменаЦвета" (имя в операторе обозначается адресом (Address)).
Процедуру Sub "СменаЦвета" создаёт сам пользователь:
Private Sub СменаЦвета(ByVal sender As System.Object, ByVal e_
As System.EventArgs)
CType(sender, TextBox).ForeColor = Color.Red
End Sub
CType – это функция, обеспечивающая присвоение свойству ForeColor (цвет шрифта) любого объекта TextBox в контейнере (sender) красного цвета (Red).
Аргумент Handles в создаваемой процедуре "СменаЦвета" отсутствует, т. к. процедура вызывается не по событию, а по имени процедуры.