Я ищу примеры кода для Entity Framework 4, и автор создал метод, который возвращает ICollection <Person>. Я знаю, что ICollection - это интерфейс. Я знаю, что Person - это тип объекта в коллекции. Я знаю, что возвращаю сборник Лиц.Что возвращает тип ICollection <Person>?
вопрос. Почему ICollection? Почему не Список <>? Почему интерфейс используется так? Я использовал интерфейсы как «чертежи» для классов, указав требуемые члены, но я не понимаю этого здесь.
Так же, как IEnumerable и другие такие интерфейсы используются по всему .net. – Mark
Хорошим примером является возврат IEnumerable при использовании 'yield return': http://msdn.microsoft.com/en-us/library/9k7k7cf0.aspx. С этой комбинацией вам не нужно заполнять весь список, прежде чем вы его вернете. Если пользователь интересуется только частью списка, будет заполнена только часть, которую они прочитали. Это также может упростить код, который генерирует список, так как вам не нужно создавать временный список для возврата результата. –
Да - IEnumerable еще более гибкий, чем ICollection , но ICollection , в свою очередь, более гибкий, чем IList . Чем проще интерфейс, который вы возвращаете, тем больше возможностей для изменения реализации позже ... –