Zakładamy, że klasa Duck dziedziczy po Bird.
Czy mógłby mi ktoś wyjaśnić jaka jest róznica między tymi linijkami:
List<Duck> ducks = new List <Duck>(){//inicjalizacja obiektów};
IEnumerable<Bird> upcastDucks = ducks;
List<Bird> birds = new List<Bird>();
birds.Add(new Bird());
birds.AddRange(upcastDucks);
To samo tylko bez typu IEnumerable<Bird>
List<Duck> ducks = new List <Duck>(){//inicjalizacja obiektów};
List<Bird> birds = new List<Bird>();
birds.Add(new Bird());
birds.AddRange(upcastDucks);
Nie rozumiem dlaczego miałbym używać referencji typu: IEnumerable<Bird> upcastDucks = ducks;