| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Общие вопросы по .NET и C# > Создание Delegate в одну строку |
| Автор: dAlex 3.3.2011, 15:35 | ||||
Сейчас для создания делегата приходится делать так
потом в коде вызывать делегат
так как функций много, не хочется для каждой отдельно описывать делегат, да и нагромождения такие. Видела где-то, что можно объявить его в одну строку, "на лету". Как это сделать, и чем это может быть чревато? |
| Автор: Gluttton 3.3.2011, 16:02 |
| dAlex, есть предопределенные делегаты: http://msdn.microsoft.com/ru-ru/library/bb549151(v=vs.90).aspx - для делегатов возвращающих значения. http://msdn.microsoft.com/ru-ru/library/018hxwa8.aspx - для делегатов не возвращающих значения. Если не ошибаюсь, то перегруженные версии могут принимать до семи параметров... Такое? |
| Автор: dAlex 4.3.2011, 11:23 |
| Gluttton, по второй ссылке вроде то, спасибо, буду смотреть =)) |
| Автор: dAlex 9.3.2011, 11:05 | ||||
что-то не получается написать строчку, анологичную этой
как ни извращаюсь, компилятор ругается
|
| Автор: -Mikle- 9.3.2011, 21:31 |
| вариант 1: MainWindow.Instance.Dispatcher.BeginInvoke((Action)delegate { AddAlgA0Row(myTrade); }); вариант 2: MainWindow.Instance.Dispatcher.BeginInvoke((Action)(() => AddAlgA0Row(myTrade))); вариант 3: MainWindow.Instance.Dispatcher.BeginInvoke(new Action<MyTrade>(AddAlgA0Row), myTrade); вариант 4: MainWindow.Instance.Dispatcher.BeginInvoke((Action<MyTrade>)AddAlgA0Row, myTrade); |