Tôi đã xem bài nói chuyện của Anders về C # 4.0 và lén xem trước C # 5.0 , và điều đó khiến tôi suy nghĩ về việc khi các tham số tùy chọn có sẵn trong C # thì đâu sẽ là cách được khuyến nghị để khai báo các phương thức không cần tất cả các tham số được chỉ định?
Ví dụ, một cái gì đó giống như FileStream
lớp có khoảng mười lăm hàm tạo khác nhau có thể được chia thành các 'họ' hợp lý, ví dụ: những cái bên dưới từ một chuỗi, những cái từ an IntPtr
và những cái từ a SafeFileHandle
.
FileStream(string,FileMode);
FileStream(string,FileMode,FileAccess);
FileStream(string,FileMode,FileAccess,FileShare);
FileStream(string,FileMode,FileAccess,FileShare,int);
FileStream(string,FileMode,FileAccess,FileShare,int,bool);
Đối với tôi, có vẻ như kiểu mẫu này có thể được đơn giản hóa bằng cách có ba hàm tạo thay thế và sử dụng các tham số tùy chọn cho những hàm có thể được mặc định, điều này sẽ làm cho các họ khác nhau của các hàm tạo khác biệt hơn [lưu ý: Tôi biết thay đổi này sẽ không được thực hiện trong BCL, tôi đang nói về giả thuyết cho loại tình huống này].
Bạn nghĩ sao? Từ C # 4.0 sẽ có ý nghĩa hơn khi biến các nhóm hàm tạo và phương thức liên quan chặt chẽ thành một phương thức duy nhất với các tham số tùy chọn, hay có lý do chính đáng để gắn bó với cơ chế nhiều quá tải truyền thống?