![]() |
Модераторы: Partizan, gambit |
![]() ![]() ![]() |
|
neprofi |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 54 Регистрация: 26.3.2008 Репутация: нет Всего: нет |
Всем привет! Если кто-нибудь сталкивался с созданием массива функций, помогите, пожалуйста. мне необходимо создать этот массив, а затем передать его в другую функцию. Н-р у меня есть 4 функции такого плана
Как мне создать массив из них и вообще возможно это или нет? |
|||
|
||||
QryStaL |
|
|||
![]() Intellectual feast ![]() ![]() Профиль Группа: Участник Сообщений: 914 Регистрация: 30.11.2005 Репутация: 10 Всего: 32 |
Используйте для этого делегаты
-------------------- I don't need a reason being who I am... |
|||
|
||||
-Mikle- |
|
|||
![]() Невидимка Vingrad'а ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1672 Регистрация: 22.6.2003 Где: Казахстан, Астана Репутация: 4 Всего: 59 |
Если все ваши 4 ф-ии одинаковые, т.е. имеют одинаковое число и тип параметров и если я правильно вас понял, то вот пример:
-------------------- Если тебе плюют в спину, значит ты впереди... |
|||
|
||||
QryStaL |
|
|||
![]() Intellectual feast ![]() ![]() Профиль Группа: Участник Сообщений: 914 Регистрация: 30.11.2005 Репутация: 10 Всего: 32 |
MyFuncHandler allFunctions = (MyFuncHandler)Delegate.Combine((MyFuncHandler)f1, (MyFuncHandler)f2, (MyFuncHandler)f3, (MyFuncHandler)f4);
лучше заменить на MyFuncHandler allFunctions = f1 + f2 +f3 + f4; =) -------------------- I don't need a reason being who I am... |
|||
|
||||
-Mikle- |
|
|||
![]() Невидимка Vingrad'а ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1672 Регистрация: 22.6.2003 Где: Казахстан, Астана Репутация: 4 Всего: 59 |
тогда так:
-------------------- Если тебе плюют в спину, значит ты впереди... |
|||
|
||||
Mascon |
|
|||
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 28.6.2006 Репутация: нет Всего: нет |
А вот так нельзя?
вызов функций по индексам, типа x = fArray[2](...); |
|||
|
||||
QryStaL |
|
|||
![]() Intellectual feast ![]() ![]() Профиль Группа: Участник Сообщений: 914 Регистрация: 30.11.2005 Репутация: 10 Всего: 32 |
Mascon, можно, такой код полезен в случаях, когда нужно вызывать методы в произвольном порядке.
-------------------- I don't need a reason being who I am... |
|||
|
||||
neprofi |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 54 Регистрация: 26.3.2008 Репутация: нет Всего: нет |
Мне посоветовали использовать списки, не знаю насколько это правильно. но так программа вроде компилируется
![]()
|
|||
|
||||
-Mikle- |
|
|||
![]() Невидимка Vingrad'а ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1672 Регистрация: 22.6.2003 Где: Казахстан, Астана Репутация: 4 Всего: 59 |
Компилироваться будет, а вот правильно или нет - понятие растяжимое. Все предложенные здесь способы (включая твой) правильные и пригодны для использования. Что конкретно использовать зависит от тебя. Лично я, не стал бы использовать списки делегатов, если бы в этом не было особой необходимости. -------------------- Если тебе плюют в спину, значит ты впереди... |
|||
|
||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | .NET для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |