Trong nhiều dự án của chúng tôi, tôi đã thấy một vài lớp sưu tập hoặc vùng chứa tùy chỉnh chứa một số loại bộ sưu tập chung chung, ví dụ: một lớp học List(of T)
.Khi nào bạn nên sử dụng IEnumerable và GetEnumerator?
Chúng thường có phương thức GetXXX trả về một IEnumerable của bất kỳ loại lớp sưu tập tùy chỉnh nào sử dụng để thu thập nội bộ có thể được lặp lại xung quanh bằng cách sử dụng vòng lặp foreach.
ví dụ:
public IEnumerable<UploadState> GetStates
{
get
{
return new List<UploadState>(m_states);
}
}
Câu hỏi của tôi là nên những lớp học thay vì thực hiện các giao diện IEnumerable
, và gọi GetEnumerator
vào danh sách riêng của mình.
Có cách nào ưu tiên hoặc là tùy thuộc vào nhà phát triển không?
Loại m_states là gì? Chỉ cần tự hỏi tại sao nó được bao bọc bởi 'Danh sách mới <>' và được trả về là 'IEnumerable <> ' – sll
http://msdn.microsoft.com/en-us/library/system.collections.ienumerable.getenumerator.aspx –