2 / 2 / 1
Регистрация: 21.11.2011
Сообщений: 183
|
|||||||||||
1 | |||||||||||
Объекту типа делегата не присваивается адрес функции18.10.2012, 18:33. Показов 790. Ответов 3
Метки нет (Все метки)
почему объекту типа делегата:
Добавлено через 12 минут хочу сделать обобщенный делегат без обобщений. Слышал, что можно сделать это, объявив делегат след. образом:
0
|
18.10.2012, 18:33 | |
Ответы с готовыми решениями:
3
Периодически не присваивается ip адрес На github не присваивается адрес сайта Можно ли присвоить объекту основного типа значение объекта пользовательского типа? Динамическая правка входного типа делегата в Expression |
28 / 28 / 5
Регистрация: 07.09.2012
Сообщений: 119
|
|||||||||||
18.10.2012, 20:47 | 2 | ||||||||||
насколько я помню, ответ на этот вопрос можно найти в разделе ковариантность и контрвариантность.
В данном случае задействована контрвариантность: Делегату может быть присвоен метод, типом параметра которого может быть класс, являющийся базовым для класса, указываемого при объявлении делегата. Проще говоря, все работало бы, если бы было примерно так: делегат:
1
|
19.10.2012, 01:18 | 3 |
Нужно чтобы вызов делегата был корректным, т.е. не падало при несовпадении аргументов.
Код который будет вызывать делегат, думает (по сигнатуре делегата), что делегат принимает параметр object. Пытается вызвать делегат, с параметром, например new object(). А что метод f будет делать с параметром object? Правильно - ничего хорошего. Поэтому для параметров делегатов ковариация запрещена.
0
|
2 / 2 / 1
Регистрация: 21.11.2011
Сообщений: 183
|
|
19.10.2012, 19:28 [ТС] | 4 |
Спасибо)
0
|
19.10.2012, 19:28 | |
19.10.2012, 19:28 | |
Помогаю со студенческими работами здесь
4
Изменение типа параметров в объявлении делегата Func Ошибка при вызове события типа некоторого делегата Разница лямбда выражения, делегата (\анонимного делегата), методом (\анонимных методов) Передача функции, делегата другой функции с параметрами Ошибка C3374 невозможно получить адрес "void function()" пока не будет создан экземпляр делегата Присвоение объекту типа string рандомный элемент из массива типа string Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |