Здравствуйте, Sinclair, Вы писали:
S>Но не очень понятно, чем вас спасает IEnumerable — на все случаи generic-интерфейсов не напасёшься их нетипизированных аналогов. S>Кроме того, скорее всего, ваш код работает некорректно. S>Что будет, если я реализую одновременно IEnumerable<string> и IEnumerable<int>? S>Вменяемая реализация позволит пользователю явно выбрать, по кому из них итерироваться. IEnumerable — это потеря информации.
Если ты реализуешь IEnumerable<string> и IEnumerable<int> то и определяешь IEnumerable.
И IEnumerable должен так же работать как и для конкретного типа. Иначе это некорректная реализация.
А если тип известен, то просто не нужно приводить к нужному типу, а для структур нет боксинга.
Но вот кода тип объекта заранее не известен, то тут спасают не дженерики.
И таких вещей куча и маленькая тележка. В тех е универсальных сериализаторах, десериализаторах.
С развитой иерархией объектов у которых есть свойство типа object итд.
и солнце б утром не вставало, когда бы не было меня