Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Создание Delegate в одну строку 
:(
    Опции темы
dAlex
Дата 3.3.2011, 15:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 208
Регистрация: 3.8.2006
Где: Санкт-Петербург

Репутация: нет
Всего: 2



Сейчас для создания делегата приходится делать так
Код

private delegate void AddDataByNewTradeDelegate(MyTrade mytrade);

//сама функция
void AddDataByNewTrade(MyTrade mytrade);


потом в коде вызывать делегат

Код

MainWindow.Instance.Dispatcher.BeginInvoke(new AddDataByNewTradeDelegate(AddDataByNewTrade), myTrade);


так как функций много, не хочется для каждой отдельно описывать делегат, да и нагромождения такие. Видела где-то, что можно объявить его в одну строку, "на лету". Как это сделать, и чем это может быть чревато? 
--------------------
eof()
PM WWW ICQ GTalk Jabber   Вверх
Gluttton
Дата 3.3.2011, 16:02 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Начинающий
***


Профиль
Группа: Завсегдатай
Сообщений: 1170
Регистрация: 28.8.2008
Где: Феодосия

Репутация: 2
Всего: 54



dAlex, есть предопределенные делегаты:
Func <T, TResult> - для делегатов возвращающих значения.
Action <T> - для делегатов не возвращающих значения.
Если не ошибаюсь, то перегруженные версии могут принимать до семи параметров...

Такое?


--------------------
Слава Україні!
PM MAIL   Вверх
dAlex
Дата 4.3.2011, 11:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 208
Регистрация: 3.8.2006
Где: Санкт-Петербург

Репутация: нет
Всего: 2



Gluttton, по второй ссылке вроде то, спасибо, буду смотреть =))
--------------------
eof()
PM WWW ICQ GTalk Jabber   Вверх
dAlex
Дата 9.3.2011, 11:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 208
Регистрация: 3.8.2006
Где: Санкт-Петербург

Репутация: нет
Всего: 2



что-то не получается написать строчку, анологичную этой

Код

MainWindow.Instance.Dispatcher.BeginInvoke(new AddDataByNewTradeDelegate(AddDataByNewTrade), myTrade);


как ни извращаюсь, компилятор ругается
Код

MainWindow.Instance.Dispatcher.BeginInvoke(new delegate {AddAlgA0Row(MyTrade myTrade);}, myTrade);

--------------------
eof()
PM WWW ICQ GTalk Jabber   Вверх
-Mikle-
Дата 9.3.2011, 21:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Невидимка Vingrad'а
***


Профиль
Группа: Экс. модератор
Сообщений: 1672
Регистрация: 22.6.2003
Где: Казахстан, Астана

Репутация: 17
Всего: 59



вариант 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);



--------------------
Если тебе плюют в спину, значит ты впереди...
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0751 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.