VB9 - Relaxed Delegates

Sebas personal blog.

Модератор: Sebas

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

VB9 - Relaxed Delegates

Сообщение Sebas » 16.09.2005 (Пт) 11:21

Продолжу тему описания планируемых нововведений в VB9

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
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

Вернуться в Sebas

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4

    TopList