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