Всем привет. Вопрос от новичка. Чем ICollection<T> отличается от обычных коллекций? Почему например можно использовать его в качестве типа для автосвойств?
Да я более-менее понимаю как работают интерфейсы. Просто не вкурил что происходит в видео практикума у Code Blog. Он там делает свойство: public virtual ICollection<MyClass> MyClasses { get; set; } Для того, чтобы объединить классы. Но при этом MyClass не реализует этот интерфейс. И что-то я запутался.
Ай колекшн это интерфейс коллекции, массив, в вместо буквы Т можно подставить любой тип и тогда будет коллекция елементов этого типа, в данном случае это будет коллекция из елементов типа MyClasses
@moneylion5 Помимо использования дженериков могу ещё добавить, что когда мы в методе указываем параметр типа ICollection<T>, то это более SOLIDно, т.к. мы не зависим от конкретного контейнера (List<T> к примеру), а зависим от абстракции, т.е. сущности получаются слабосвязанными.
P.S. Принцип инверсии зависимостей (Dependency Inversion Principle)