CÁC GIẢI PHÁP LẬP TRÌNH C# - Trang 626

626
Chương 16: Các giao diện và mẫu thông dụng

throw new InvalidOperationException("Team modified");

}

// Nếu không, tiến đến TeamMember kế tiếp.

currentMember++;

// Trả về false nếu ta dịch qua khỏi TeamMember cuối cùng.

if (currentMember > (sourceTeam.teamMembers.Count-1)) {

return false;

} else {

return true;

}

}

// Hiện thực phương thức IEnumerator.Reset. Phương thức này

// reset vị trí của TeamMemberEnumerator về đầu tập hợp Team.

public void Reset() {

// Nếu Team nằm dưới bất hợp lệ, ném ngoại lệ.

if (teamInvalid) {

throw new InvalidOperationException("Team modified");

}

// Dịch con trỏ currentMember về trước phần tử đầu tiên.

currentMember = -1;

}

// Phương thức thụ lý sự kiện tập hợp Team nằm dưới thay đổi.

internal void TeamChange(Team t, EventArgs e) {

// Báo hiệu Team nằm dưới hiện đang bất hợp lệ.

teamInvalid = true;

}

}