628
Chương 16: Các giao diện và mẫu thông dụng
IEnumerator
. Ví dụ, nếu lớp
Team
mô tả cả các thành viên và các máy tính trong đội, bạn có
thể hiện thực các thuộc tính này như sau:
// Thuộc tính dùng để liệt kê các thành viên trong đội.
public IEnumerator Members {
get {
return new TeamMemberEnumerator(this);
}
}
// Thuộc tính dùng để liệt kê các computer trong đội.
public IEnumerator Computers {
get {
return new TeamComputerEnumerator(this);
}
}
Khi đó, bạn có thể sử dụng các enumerator này như sau:
Team team = new Team();
§
foreach(TeamMember in team.Members) {
// Làm gì đó...
}
foreach(TeamComputer in team.Computers) {
// Làm gì đó...
}
Lệnh
foreach
cũng hỗ trợ các kiểu có hiện thực một mẫu tương đương với mẫu
được định nghĩa bởi giao diện
IEnumerable
và
IEnumerator
, mặc dù kiểu đó không
hiện thực các giao diện này. Tuy nhiên, mã lệnh của bạn sẽ rõ ràng hơn và dễ
hiểu hơn nếu bạn hiện thực giao diện
IEnumerable
. Bạn hãy xem C# Language
Specification để biết chi tiết về các yêu cầu của lệnh
foreach
[
http://msdn.microsoft. com/net/ecma]
.