0 / 0 / 0
Регистрация: 26.09.2013
Сообщений: 6
|
||||||
1 | ||||||
.NET 4.x Оборачивание метода другим методом26.09.2013, 15:15. Показов 1554. Ответов 13
Метки нет (Все метки)
можно ли без использования анонимных делегатов заставить метод1 получать в виде параметра метод2
который будет выполнятса в теле метода1 в определенный момент, причем чтобы метод2 мог быть разный для одного и тогоже метода1 (поиском ничего внятного не нашел) что то типа такого
0
|
26.09.2013, 15:15 | |
Ответы с готовыми решениями:
13
Как использовать объект, созданный одним методом, другим методом? Как из статического метода обратится к другим методам или компонентам формы The_content() оборачивание контента Оборачивание запросов в хранимые процедуры |
136 / 138 / 18
Регистрация: 26.07.2010
Сообщений: 911
|
|
26.09.2013, 15:27 | 2 |
Можно просто в метод подавать делегат и в методе вызывать метод Invoke.
И запись выше не поменяется.
0
|
0 / 0 / 0
Регистрация: 26.09.2013
Сообщений: 6
|
|
26.09.2013, 15:32 [ТС] | 3 |
0
|
136 / 138 / 18
Регистрация: 26.07.2010
Сообщений: 911
|
||||||
26.09.2013, 16:04 | 4 | |||||
Упс, насчет записи я перегнул палку.
Попутал с событиями. В общем можно, но придется создавать доп. класс.
0
|
Администратор
|
|
26.09.2013, 16:19 | 5 |
Можно с использованием неанонимных делегатов.
А то что написал для вас n1l, делает компилятор при обработке вызова делегата. Так что без делегатов вы будете делать лишнюю работу. Может поделитесь, чем вам не нравятся/не подходят делегаты?
0
|
0 / 0 / 0
Регистрация: 26.09.2013
Сообщений: 6
|
||||||
26.09.2013, 16:25 [ТС] | 6 | |||||
n1l, спасибо но получаеться что с анонимными методами меньше кода и мороки = )
0
|
136 / 138 / 18
Регистрация: 26.07.2010
Сообщений: 911
|
|
26.09.2013, 16:29 | 7 |
Если судить по коду, вам делегаты вообще не нужны. Вы можете эти методы просто вызывать.
0
|
0 / 0 / 0
Регистрация: 26.09.2013
Сообщений: 6
|
||||||
26.09.2013, 16:32 [ТС] | 8 | |||||
я просто думал что есть способ как в лиспе без особого гемороя засунуть метод в другой метод
Пример из жизни layfunc на его местов в параметре при вызове передаетса другая функция
0
|
136 / 138 / 18
Регистрация: 26.07.2010
Сообщений: 911
|
|
26.09.2013, 16:39 | 9 |
Ну можете посмотреть как устроены методы в linq, и подавать лямбда выражение или что-то на подобе вкачестве параметра. Но это тоже анонимные делегаты.
1
|
Администратор
|
|
26.09.2013, 16:41 | 10 |
Вам кажется, что это геморрой, кода на самом деле не много. Привыкните. К тому же есть уже готовые Func и Action с кучей вариантов и другие полезные делегаты, так что это не так страшно.
1
|
0 / 0 / 0
Регистрация: 26.09.2013
Сообщений: 6
|
|||||||||||
26.09.2013, 16:41 [ТС] | 11 | ||||||||||
я просто пишу для автокада и мне надо и у меня есть вот такая обертка чтобы каждый раз не вписывать ее в саму функцию , хотел сделать её отдельной функцией которую можно использовать для многих вещей
0
|
Администратор
|
||||||||||||||||
26.09.2013, 16:47 | 12 | |||||||||||||||
У компилятора C# есть одна полезная вешь: вы таки можете передавать методы без делегата в другой метод, а компилятор подставит нужный делегат сам. Например, есть метод и делегат
0
|
0 / 0 / 0
Регистрация: 26.09.2013
Сообщений: 6
|
|
26.09.2013, 16:59 [ТС] | 13 |
А что делать если сигнатуры разные ?
у одного метода может быть 2 параметра у другого не одного
0
|
Администратор
|
||||||
26.09.2013, 17:04 | 14 | |||||
Писать перегрузку метода, который принимает метод
0
|
26.09.2013, 17:04 | |
26.09.2013, 17:04 | |
Помогаю со студенческими работами здесь
14
Оборачивание элементов управления в классы Доказательство клауз, готовую задачу другим методом Прогнозирование курса гривны к 4 другим валютам методом скользящих окон, используя нейронные сети Решение д/у методом модифицированного метода Эйлера Решение симплекс-методом в Matlab . Активация метода Невозможно передать ArrayList в аргументы метода без модификатора static у этого метода или метода main Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |