Показать сообщение отдельно
Старый 30.06.2011, 21:47   #6  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,429 / 1772 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
С validateField наверное немного неудачный пример. т.к. изменить возвращаемое значение метода перехватив событие его вызова видимо всё-таки нельзя. И наверное это правильно, иначе были бы конфликты между несколькими "перехватчиками". Да и к тому же перехватывать видимо можно только методы помеченные ключевым словом delegate (это предположение). Кстати, в случае наличия нескольких подписчиков возникает вопрос очерёдности их обработки. Может они вообще параллельно могут выполняться

Так же интересно, каким способом в обработчике события можно получить ссылку на объект у которого это событие произошло? На сколько я понял из примера, входящие параметры обработчика совпадают с входящими параметрами перехватываемого метода. Сработает если переписать метод appleGrew так:
X++:
delegate void appleGrew(int appleId, Apples _this = this)
{

}
?

UPD. Спасибо за ссылку на MSDN многие вопросы отпали
Оказывается и возвращаемое значение можно поменять и даже значения входных параметров. И всё-таки интересно как это всё будет жить в случае нескольких подписчиков?

Последний раз редактировалось S.Kuskov; 30.06.2011 в 22:02.