![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
VLK32 |
|
||||||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 22.1.2011 Репутация: нет Всего: нет |
Есть описание ссылки на функцию:
Есть функция кот. возвращает ссылку на анонимную функцию с уже конкретизированным типом, например:
И в результате:
Компилятор выдает ошибку: Incompatible types: 'TSelector<Main.TTestRec>' and 'Procedure' Вопрос. Что я делаю не так? |
||||||
|
|||||||
VLK32 |
|
||||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 22.1.2011 Репутация: нет Всего: нет |
Спасибо за помощь, все свободны
![]() Пишу для тех кто может напороться на эти грабли. Вот это работает:
А вот это не работает:
Есть знатоки, которые смогут мне объяснить чем одно принципиально отличается от другого? |
||||
|
|||||
skyboy |
|
|||
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 4 Всего: 260 |
предупреждаю, что в последний раз работал ажно с Delphi 7, где не было никаких анонимных функций. а вот процедурный тип переменных уже был.
замечу, что выполнит функцию MakeAdder, которая вернет в качестве результата процедуру. Эта процедура запишется в переменную и позже выполнится с двумя аргументами. Во втором случае в переменную Adder ты пытаешься закинуть не анонимную процедуру, которую вернет MakeAdder, а саму MakeAdder. Что не позволительно, так как MakeAdder не совпадает с описанием типа TFunc2<integer>. А даже если бы и совпадало, то ты при вызове
ты бы выполнил саму MakeAdder, а не анонимную функцию, описанную в ней. |
|||
|
||||
VLK32 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 22.1.2011 Репутация: нет Всего: нет |
Вот голова моя садовая! Ты прав. Снимаю вопрос.
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Общие вопросы" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |