Ich bereite mich auf meine C# EXAM. Ich bin verwirrt über die Antwort auf diese Frage:Was ist der Grund für die Implementierung von IEnumerable und IEnumerator
Ein Programm die
IEnumerable
undIEnumerator
Schnittstellen verwenden können, um zu tun, welche der folgenden?a. Verwenden Sie MoveNext und Reset, um sich durch eine Liste von Objekten zu bewegen.
b. Verwenden Sie foreach, um sich durch eine Liste von Objekten zu bewegen.
c. Durch eine Liste von Objekten nach Index navigieren.
d. Verwenden Sie die yield return-Anweisung, um eine Liste von Objekten für die Iteration zu erstellen.
Meine Antwort war b). Aber das Buch: MCSD Certification Toolkit sagt, es ist ein).
Kann mir jemand sagen warum? Ich erkenne, dass Sie die Enumerator
mit GetEnumerator()
erhalten können und dann die Methoden MoveNext
und Reset
aufrufen, um durch die Liste zu gehen (und Current
verwenden, um auf das aktuelle Element zuzugreifen, auf das der Iterator verweist). Aber implementiert IEnumerable
und IEnumerator
nicht den Grund für ein Objekt in einer foreach
Schleife verwendet werden?
Von MSDN: 'Es ist eine bewährte Methode IEnumerable und IEnumerator auf Ihrer Sammlung Klassen zu implementieren, um die foreach zu ermöglichen (For Each in Visual Basic) Syntax wird jedoch die Umsetzung IEnumerable –
nicht so required.', Sie sagen, dass, weil die Frage IEnumerable und IEnUMERATOR sagt, es a) sein sollte. Vielen Dank, Hank. Du hast meinen Tag gerettet! – user3509153
Ich hasse diese Art von Fragen. Sie testen Sie auf Ihre Fähigkeit, vage/unklare Fragen zu entschlüsseln und nicht Ihr Wissen zu diesem Thema. –