Wpis z mikrobloga

IEnumerable queryResult = ;


@g_vv: Chodzi o to, żeby metoda z linq zwracała Ci obiekt o którym wiesz tylko tyle, że możesz iterować, ale nie chwalą się konkretną implementacji i jeśli nawet teraz to jest List a w przyszłej wersji postanowią zmienić implementację i będzie zwracać T[] albo w ogóle zrobią fikołka z yield to twój kod dalej będzie działał.

Interfejs jest tylko kontraktem.
  • Odpowiedz
@g_vv: Object Oriented Programming do powtórki i zgoogluj "coding against an interface" i ewentualnie jak ci się bardzo nudzi to doczytaj czym jest L w SOLID
  • Odpowiedz
@g_vv: IEnumerable nie tworzy instancji. Możesz sobie zrobić query do bazy danych, a sam "strzał" odbędzie się w momencie materializacji (kiedy np. zrobisz .ToList() lub zwrocisz to przez endpoint). Jak sobie zobaczysz czym jest LIst to zobaczysz, że dziedziczy z IEnumerable. To jest najprostszy (pod względem skomplikowania) numerator w C#.
  • Odpowiedz