Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
14.12.2014, 23:59
|
|||
---|---|---|---|
|
|||
Приведение аргумента типа в обобщенном типе - возможно ли такое? |
|||
#18+
Есть простой набор определений: Код: c# 1. 2. 3. 4. 5. 6.
есть желание сделать следующее приведение: Код: c# 1. 2. 3. 4. 5.
казалось бы, все честно, однако, компилятор не дает сделать подобное приведение. Можно ли обойтись без dynamic, чтобы выполнить Woof? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
15.12.2014, 00:34
|
|||
---|---|---|---|
|
|||
Приведение аргумента типа в обобщенном типе - возможно ли такое? |
|||
#18+
Shocker.Pro, не получится, совершенно разные типы. нужно действовать через общий интерфейс или базовый Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
15.12.2014, 01:24
|
|||
---|---|---|---|
|
|||
Приведение аргумента типа в обобщенном типе - возможно ли такое? |
|||
#18+
Сорри, слишком упросил пример, дело в том, что Woof на самом деле возвращает тип T, то есть такой вариант не подойдет :( Код: c# 1. 2. 3. 4. 5. 6.
Код: c# 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
15.12.2014, 12:02
|
|||
---|---|---|---|
|
|||
Приведение аргумента типа в обобщенном типе - возможно ли такое? |
|||
#18+
Shocker.Pro, зачем это промежуточное приведение? dog.Woof(); (не dog1.Woof();) и так выгафкает своего хозяина. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
15.12.2014, 12:04
|
|||
---|---|---|---|
|
|||
Приведение аргумента типа в обобщенном типе - возможно ли такое? |
|||
#18+
dog имеет тип object (по определению задачи) Чтобы выполнить его метод, нужно сделать приведение ... |
|||
:
Нравится:
Не нравится:
|
|||
|
15.12.2014, 12:14
|
|||
---|---|---|---|
Приведение аргумента типа в обобщенном типе - возможно ли такое? |
|||
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
|
15.12.2014, 19:24
|
|||
---|---|---|---|
|
|||
Приведение аргумента типа в обобщенном типе - возможно ли такое? |
|||
#18+
hVostt, спасибо за ссылку. Из нее следует, что ковариантным можно сделать только интерфейс, не не класс. В итоге, определение приобрело интерфейс для собаки с ковариантным параметром типа: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
ну и теперь можно привести объект к интерфейсу: Код: c# 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=20&mobile=1&tid=1402127]: |
0ms |
get settings: |
12ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
38ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
others: | 332ms |
total: | 471ms |
0 / 0 |