Relaxed Delegates.
Расслабленные (или слабые? А судя из смысла простые) делегаты.
Смыcл нововведения в том, что когда мы создаем обработчик события, а по классике он должен выглядеть так:
- Код: Выделить всё
Sub myHandler(sender As Object, e As EventArgs) Handles myObject.myEvent
то есть, соответствовать сигнатуре
- Код: Выделить всё
Delegate Sub EventHandler(sender As Object, e As EventArgs)
Так вот, при использовании некоторых событий эти 2 агрумента(Sender и e) неинтересны коды обработчику.
Например:
- Код: Выделить всё
Dim WithEvents B As New Button()
Sub OnClick(sender As Object, e As EventArgs) Handles B.Click
MessageBox.Show("Hello World from" + B.Text)
End Sub
в данном примере, аргумент е не несёт никакой полезной информации, да и Sender нам был бы интересен только в случае обработки события от нескольких объектов.
В VB9 мы сможем упростить обработчик до такого вида
- Код: Выделить всё
Sub RelaxedOnClick Handles B.Click
MessageBox.Show("Hello World from" + B.Text)
End Sub
ЧТо мы получаем этим?
Универсальный обработчик события для делегатов с разными сигнатурами.
К сожалению, MS не говорит, сможем ли мы расслабить делегат не полностью, а на половину))))
Тоесть вот так:
- Код: Выделить всё
Sub RelaxedOnClick(Sender as Object) Handles A.Click,B.Click
MessageBox.Show("Hello World from" + Sender.Tostring)
End Sub