Tôi đang chuẩn bị cho C# EXAM của mình là gì. Tôi đang bối rối về câu trả lời cho câu hỏi này:Lý do thực hiện IEnumerable và IEnumerator
Một chương trình có thể sử dụng các giao diện
IEnumerable
vàIEnumerator
làm nào sau đây?a. Sử dụng MoveNext và Reset để di chuyển qua danh sách các đối tượng.
b. Sử dụng foreach để di chuyển qua danh sách các đối tượng.
c. Di chuyển qua danh sách các đối tượng theo chỉ mục.
d. Sử dụng báo cáo trả về lợi nhuận để tạo danh sách các đối tượng để lặp lại.
Câu trả lời của tôi là b). Nhưng cuốn sách: Bộ công cụ chứng nhận MCSD nói rằng đó là a).
Ai đó có thể cho tôi biết lý do không? Tôi nhận thấy rằng bạn có thể lấy số Enumerator
bằng cách sử dụng GetEnumerator()
và sau đó gọi các phương thức MoveNext
và Reset
để di chuyển qua danh sách (và sử dụng Current
để truy cập phần tử hiện tại được tham chiếu bởi trình lặp). Nhưng không triển khai IEnumerable
và IEnumerator
lý do cho một đối tượng được sử dụng trong vòng lặp foreach
?
Từ MSDN: 'Đó là một thực hành tốt nhất để thực hiện IEnumerable và IEnumerator trên lớp sưu tập của bạn để cho phép các foreach (For Each trong Visual Basic) cú pháp, tuy nhiên thực hiện IEnumerable không required.' –
Vì vậy, bạn đang nói rằng bởi vì câu hỏi nói cả IEnumerable và IEnUMERATOR, nên là a). Cảm ơn rất nhiều Hank. Bạn đã làm cho ngày của tôi! – user3509153
Tôi ghét những loại câu hỏi này. Họ kiểm tra bạn về khả năng của bạn để giải mã các câu hỏi mơ hồ/không rõ ràng hơn là kiến thức của bạn về chủ đề này. –