Przygotowuję się do mojego C# EXAM. Jestem mylić o odpowiedź na to pytanie:Jaki jest powód implementacji IEnumerable i IEnumerator
Program można wykorzystać interfejsy
IEnumerable
iIEnumerator
zrobić które z poniższych stwierdzeń?a. Użyj funkcji MoveNext i Reset, aby poruszać się po liście obiektów.
b. Użyj foreach, aby poruszać się po liście obiektów.
c. Przejdź przez listę obiektów według indeksu.
d. Użyj instrukcji return return, aby utworzyć listę obiektów do iteracji.
Moja odpowiedź była b). Ale książka: MCSD Certification Toolkit mówi, że jest to a).
Czy ktoś może mi powiedzieć, dlaczego? Rozumiem, że można uzyskać Enumerator
przy użyciu GetEnumerator()
, a następnie wywołać metody MoveNext
i Reset
, aby przejść przez listę (i użyć Current
, aby uzyskać dostęp do bieżącego elementu, do którego odnosi się iterator). Ale nie implementuje IEnumerable
i IEnumerator
powodów, dla których obiekt ma być używany w pętli foreach
?
Od MSDN: 'Jest to najlepsze praktyki do wdrożenia IEnumerable i IEnumerator na swoich klasach zbiórki w celu umożliwienia foreach (dla każdego Visual Basic) składni, jednak wdrożenie IEnumerable nie required.' –
Więc, mówisz tak, ponieważ pytanie mówi zarówno IEnumerable i IEnUMERATOR, powinno być a). Dziękuję bardzo Hank. Zrobiłeś mój dzień! – user3509153
Nienawidzę tego rodzaju pytań. Sprawdzają, czy potrafisz odcyfrować niejasne/niejasne pytania, a nie swoją wiedzę na ten temat. –