|
|
|
Поясните с классами в C#
|
|||
|---|---|---|---|
|
#18+
может ошибся веткой, звиняйте... Почему во втором случае q всегда null? и как можно скастить IEnumerable<Human> в IEnumerable<Boy>? Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2014, 10:06 |
|
||
|
Поясните с классами в C#
|
|||
|---|---|---|---|
|
#18+
Код: c# 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2014, 10:57 |
|
||
|
Поясните с классами в C#
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro, Вы вообще поняли, что предложили? Как только ТС дёрнет полученный энумератор, так сразу получит InvalidCastException. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2014, 11:08 |
|
||
|
Поясните с классами в C#
|
|||
|---|---|---|---|
|
#18+
Код: c# 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2014, 11:09 |
|
||
|
Поясните с классами в C#
|
|||
|---|---|---|---|
|
#18+
Алексей К Код: c# 1. Ещё один советчик Вы вообще обратили внимание на то, что Boy - это наследник от Human? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2014, 11:14 |
|
||
|
Поясните с классами в C#
|
|||
|---|---|---|---|
|
#18+
Если бы у ТС внутри метода GetHumans() коллекция наполнялась экземплярами класса Boy, то работало бы преобразование HumanServices.GetHumans() as IEnumerable<Boy>. Но as возрашает null , следовательно преобразование не возможно. Следовательно (IEnumerable<Boy>)HumanServices.GetHumans() , HumanServices.GetHumans().Select(n => (Boy)n) и HumanServices.GetHumans().Cast<Boy>() приведут к исключению. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2014, 11:21 |
|
||
|
Поясните с классами в C#
|
|||
|---|---|---|---|
|
#18+
Да, не прав, ТС ведь скрыл реализацию получения IEnumerable<Human> .... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2014, 11:35 |
|
||
|
Поясните с классами в C#
|
|||
|---|---|---|---|
|
#18+
Shocker.ProДа, не прав, ТС ведь скрыл реализацию получения IEnumerable<Human> ....Ещё раз: 16472684 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2014, 11:36 |
|
||
|
Поясните с классами в C#
|
|||
|---|---|---|---|
|
#18+
skyANAShocker.ProДа, не прав, ТС ведь скрыл реализацию получения IEnumerable<Human> ....Ещё раз: 16472684 имел ввиду, что Я не прав )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2014, 11:37 |
|
||
|
Поясните с классами в C#
|
|||
|---|---|---|---|
|
#18+
Shocker.ProskyANAпропущено... Ещё раз: 16472684 имел ввиду, что Я не прав ))А я имел ввиду, что не важно то, что ТС скрыл реализацию. Не катит это за отмазу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2014, 11:39 |
|
||
|
Поясните с классами в C#
|
|||
|---|---|---|---|
|
#18+
Cheerful CalfПочему во втором случае q всегда null? потому что в памяти хранятся ссылки на объекты типа Human, а это не Boy Cheerful Calfи как можно скастить IEnumerable<Human> в IEnumerable<Boy>? никак, из большой матрешки Boy можно достать меньшую матрешку Human, но не наоборот если хочешь, чтоб заработало - надо чтоб HumanServices.GetHumans() возвращал Boy ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2014, 12:06 |
|
||
|
Поясните с классами в C#
|
|||
|---|---|---|---|
|
#18+
что-то в этом направлении может быть? Код: c# 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2014, 12:31 |
|
||
|
Поясните с классами в C#
|
|||
|---|---|---|---|
|
#18+
Попахивает ковариантностью дженериков. Код: c# 1. 2. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. Код: c# 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2014, 15:02 |
|
||
|
Поясните с классами в C#
|
|||
|---|---|---|---|
|
#18+
МСУ, к чему ты это всё написал? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2014, 16:35 |
|
||
|
Поясните с классами в C#
|
|||
|---|---|---|---|
|
#18+
skyANAМСУ, к чему ты это всё написал? К знаниям. А что? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2014, 16:53 |
|
||
|
Поясните с классами в C#
|
|||
|---|---|---|---|
|
#18+
skyANAМСУ, к чему ты это всё написал? А именно, как сделать каст IEnumerable<T> as IEnumerable<M>. Именно это написано в начальном вопросе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2014, 16:54 |
|
||
|
Поясните с классами в C#
|
|||
|---|---|---|---|
|
#18+
МСУ, ну и как же ТСу сделать каст IEnumerable<Human> as IEnumerable<Boy>? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2014, 17:56 |
|
||
|
Поясните с классами в C#
|
|||
|---|---|---|---|
|
#18+
может свой конвертер? написать пару строк кода.. Код: c# 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2014, 18:00 |
|
||
|
Поясните с классами в C#
|
|||
|---|---|---|---|
|
#18+
skyANAАлексей К Код: c# 1. Ещё один советчик Вы вообще обратили внимание на то, что Boy - это наследник от Human?Может GetHumans возвращает множество Boy несмотря на то, что имеет тип результата IEnumerable<Human>. Иначе зачем топикстартеру задавать этот вопрос? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2014, 18:25 |
|
||
|
Поясните с классами в C#
|
|||
|---|---|---|---|
|
#18+
Где-то в степиможет свой конвертер? написать пару строк кода..Да зачем свой? Есть для этого готовое либки (AutoMapper что ли...) как-раз для того чтобы кастить Human в Boy, который унаследован от класса Human (создает объект нужного типа и копирует все подходящие свойства). МСУПопахивает ковариантностью дженериков.Оооо... Месье... :-) A разве ICovariant<R> есть тоже самое, что и IEnumerable<R> ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2014, 20:01 |
|
||
|
Поясните с классами в C#
|
|||
|---|---|---|---|
|
#18+
PS: Думал реализация не столь важна, но коль возникли сомнения - то, например, вот (EF): Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2014, 20:06 |
|
||
|
Поясните с классами в C#
|
|||
|---|---|---|---|
|
#18+
Алексей КskyANAпропущено... Ещё один советчик Вы вообще обратили внимание на то, что Boy - это наследник от Human?Может GetHumans возвращает множество Boy несмотря на то, что имеет тип результата IEnumerable<Human>. Иначе зачем топикстартеру задавать этот вопрос?Ла-ла-ла-ла-ла-ла.. 16472684 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2014, 22:17 |
|
||
|
Поясните с классами в C#
|
|||
|---|---|---|---|
|
#18+
Cheerful CalfPS: Думал реализация не столь важна, но коль возникли сомнения - то, например, вот (EF): Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Ёбинос, месье, таки что Вы хотите? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2014, 22:18 |
|
||
|
Поясните с классами в C#
|
|||
|---|---|---|---|
|
#18+
Cheerful CalfПочему во втором случае q всегда null? и как можно скастить IEnumerable<Human> в IEnumerable<Boy>? null ни во что нельзя превратить, null всегда null. и с другой стороны null есть всё, даже под тип КитайскаяБабушка, тоже вполне подходит. филосовский такой вброс. а вообще HumanServices.GetHumans().Where(x => x is Boy).ToList(); это спасёт Отца Русской Демократии, но не от null. уж сорри. месье, же не манж па сис жур. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2014, 01:48 |
|
||
|
Поясните с классами в C#
|
|||
|---|---|---|---|
|
#18+
skyANAЁбинос, месье, таки что Вы хотите? "поржать хочу аки конь" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2014, 01:50 |
|
||
|
Поясните с классами в C#
|
|||
|---|---|---|---|
|
#18+
skyANAАлексей Кпропущено... Может GetHumans возвращает множество Boy несмотря на то, что имеет тип результата IEnumerable<Human>. Иначе зачем топикстартеру задавать этот вопрос?Ла-ла-ла-ла-ла-ла.. 16472684 Версия C# не озвучена. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2014, 05:47 |
|
||
|
Поясните с классами в C#
|
|||
|---|---|---|---|
|
#18+
skyANAЁбинос, месье, таки что Вы хотите? Код: c# 1. Где Boy - наследник класса Human. Алексей КВерсия C# не озвучена.6 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2014, 09:33 |
|
||
|
Поясните с классами в C#
|
|||
|---|---|---|---|
|
#18+
skyANAМСУ, ну и как же ТСу сделать каст IEnumerable<Human> as IEnumerable<Boy>? Я в примере показал, что можно с помощью ковариантности сделать каст IEnumerable<Boy> as IEnumerable<Human>. Cheerful CalfОооо... Месье... :-) A разве ICovariant<R> есть тоже самое, что и IEnumerable<R> ? ICovariant< out R> :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2014, 09:41 |
|
||
|
Поясните с классами в C#
|
|||
|---|---|---|---|
|
#18+
МСУskyANAМСУ, ну и как же ТСу сделать каст IEnumerable<Human> as IEnumerable<Boy>? Я в примере показал, что можно с помощью ковариантности сделать каст IEnumerable<Boy> as IEnumerable<Human>.Спасибо конечно, а теперь покажи как сделать каст IEnumerable<Human> as IEnumerable<Boy>. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2014, 12:57 |
|
||
|
Поясните с классами в C#
|
|||
|---|---|---|---|
|
#18+
skyANAСпасибо конечно, а теперь покажи как сделать каст IEnumerable<Human> as IEnumerable<Boy>. Пожалуйста, всегда готов помочь. Каст IEnumerable<Human> as IEnumerable<Boy> сделать нельзя. Про матрёшку было сказано выше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2014, 13:05 |
|
||
|
Поясните с классами в C#
|
|||
|---|---|---|---|
|
#18+
МСУskyANAСпасибо конечно, а теперь покажи как сделать каст IEnumerable<Human> as IEnumerable<Boy>. Пожалуйста, всегда готов помочь.Готов-то готов, вот только не помог ни фига ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2014, 13:07 |
|
||
|
Поясните с классами в C#
|
|||
|---|---|---|---|
|
#18+
МСУсделать нельзястранно, что свеном еще не отметился в этом топике, было бы интересно "заслушать начальника транспортного цеха" (с) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2014, 13:08 |
|
||
|
Поясните с классами в C#
|
|||
|---|---|---|---|
|
#18+
skyANAМСУпропущено... Пожалуйста, всегда готов помочь.Готов-то готов, вот только не помог ни фига Почему не помог? Сейчас авто переиграет направление каста и тут уже будет полезен мой ответ. Не торопи гусей :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2014, 13:11 |
|
||
|
|

start [/forum/topic.php?all=1&fid=17&tid=1349725]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
44ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
2ms |
| others: | 13ms |
| total: | 169ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...