CÔNG VIỆC CỦA CHÚNG TÔI

+ Đào tạo & hỗ trợ thi & Cấp chứng chỉ Ứng dụng CNTT cơ bản, nâng cao
+ Cung cấp dịch vụ Thiết kế - Lập trình web
+ Các giải pháp triển khai - quản trị hệ thống mạng doanh nghiệp
+ ĐÀO TẠO CHUYÊN NGHIỆP: LẬP TRÌNH (C, .Net, ASP.net, PHP, Thiết kế Đồ họa

Trả về kiểu IEnumerable hay IList?

Câu hỏi: Tại sao lại trả về IEnumerable mà ko phải là IList ? Hoặc rộng hơn là tại sao lại chọn IEnumerable thay vì các kiểu collection khác hay 1 class cụ thể?
Vấn đề: nhiều bạn viết code thường trả về kiểu List Có lẽ là vì kiểu List có thể làm được mọi thứ nhanh chóng dễ dàng. Nhưng khi dùng tool như Resharper, có thể thấy rằng Reshaper khuyến nghị chúng ta nên trả về IEnumerable. Tại sao lại như vậy?
Giải thích: 1 nguyên tắc khi thiết lập Interface, đó là trả về most restricted type, vì vậy luôn trả về kiểu List là 1 thói quen xấu và tùy tiện. Trả về IEnumerable có 2 lợi ích:
  • Ngăn chặn những thao tác chỉnh sửa lên read-only collection, ví như khi ta trả về tập hợp với mục đích hiển thị, nhưng sau đó lại cố gắng add thêm item vào, trình biên dịch sẽ báo động cho chúng ta về lỗi tư duy này ngay lập tức
  • Không bị giới hạn size như với Array
  •