Nó thực sự không chỉ là phương pháp quá tải (nơi thường tên cùng một phương pháp có lập luận khác nhau loại), mô hình cụ thể này - nơi quá tải về cơ bản cùng một phương pháp, và một ngắn hơn gọi một trong những lâu hơn với giá trị mặc định để mô phỏng các tham số tùy chọn - được gọi là mẫu kính thiên văn/kính thiên văn, thường được thấy trên các hàm tạo, nhưng tất nhiên là có thể khái quát được với bất kỳ phương thức nào.
Đối với một trích dẫn có thẩm quyền hơn, đây là một đoạn trích từ Effective Java 2nd Edition, khoản 2: Xem xét một mô hình xây dựng khi phải đối mặt với nhiều thông số constructor (excerpt online)
Theo truyền thống, các lập trình viên đã sử dụng mô hình telescoping constructor, trong đó bạn cung cấp một hàm tạo chỉ với các tham số bắt buộc, một với một tham số tùy chọn duy nhất, một tham số thứ ba với hai tham số tùy chọn, và trên ...
Một lần nữa, thường mô hình kính thiên văn được thảo luận trong bối cảnh của các nhà thầu (ví dụ: một nhà xây dựng 2-arg sẽ có một dòng this(arg1, arg2, ARG3_DEFAULT);
để gọi hàm tạo 3-arg, v.v.), nhưng tôi không thấy tại sao nó không thể được khái quát hóa với các phương thức khác nữa.
Một quote có thẩm quyền, không may không có định nghĩa của mô hình: Sun Developer Network: How to Write Doc Comments for the Javadoc Tool:
Thông báo các phương pháp và nhà xây dựng đang ở trong "lồng" trật tự, có nghĩa là "không có arg" hình thức đầu tiên, sau đó dạng "1 arg", sau đó là dạng "2 arg", v.v.
Và một trích dẫn ngẫu nhiên, với một định nghĩa rõ ràng hơn về các mô hình: I Am Hate Method Overloading (And So Can You!):
telescoping Phương pháp
Bạn có thể có một chức năng mà phải mất một số tranh cãi . Các đối số cuối cùng có thể không phải là tất cả những gì quan trọng, và hầu hết người dùng sẽ khó chịu trong việc phải tìm ra những gì để vượt qua chúng. Vì vậy, bạn tạo thêm một vài phương thức có cùng tên và ít đối số hơn, gọi đến phương thức "chính".
Trích dẫn cuối cùng này đề xuất trực tiếp rằng hỗ trợ ngôn ngữ cho đối số mặc định là lựa chọn tốt hơn nhiều.
không có nghĩa là DoWork (tên, phoneNumber, string.Empty)? – Andrey
vâng Andrey, tôi đã chỉnh sửa nó ngay bây giờ, cảm ơn vì đã chỉ ra điều này, và xin lỗi về bất kỳ sự nhầm lẫn nào có thể đã gây ra – GenEric35
Cảm ơn tất cả mọi người về câu trả lời nhanh, tôi sẽ chờ một ai đó có tên này vì tôi đã thấy điều này thường xuyên và muốn đặt tên trên đó. Tôi sẽ chấp nhận một câu trả lời trước khi kết thúc ngày, cảm ơn. – GenEric35