Có bất kỳ loại quy ước nào trong C# (hoặc bất kỳ ngôn ngữ hướng đối tượng nào hỗ trợ quá tải phương thức) cho tình huống sau đây không?Có quy ước đặt hàng tham số quá tải phương thức C# không?
phép nói rằng tôi có một phương pháp foo:
public void Foo(int a){//does stuff}
Nhưng thực sự tôi có 3 phương pháp foo:
public void Foo(int a){}
public void Foo(int a, double b){}
public void Foo(float c, int a, double b){}
Có một quy ước đó khẳng định có hay không thứ tự của các thông số vấn đề trong một phương pháp quá tải? Chú ý phương thức thứ 3 không tiến triển logic hợp lý như thế nào (a, b, c).
Nếu 'a' luôn được yêu cầu và' b' là bắt buộc nếu 'c' được cung cấp, tôi sẽ làm như sau:' public void Foo (int a, double? B = null, float? C = null) '- giả sử logic của bạn là như nhau. – zimdanen
@zimdanen, không có lý do gì để làm cho các tham số rỗng được – Maxwe11
@Jupiter: Ý tưởng là sử dụng nó như là một thay thế cho quá tải. Nó hoạt động tốt khi có nhiều tham số tất cả đều độc lập - bạn tránh tăng gấp đôi số lượng quá tải mỗi khi bạn thêm một lần nữa. (Phải thừa nhận rằng khi bạn có khoảng 5 thông số, bạn nên cẩn thận xem liệu đây có phải là thiết kế phù hợp hay không ...) –