thể trùng lặp:
Interface defining a constructor signature?Tại sao chúng ta không được phép chỉ định một hàm tạo trong một giao diện?
Tôi biết rằng bạn không thể chỉ định một constructor trong một giao diện trong Net, nhưng tại sao chúng ta có thể không? Nó sẽ thực sự hữu ích cho dự án hiện tại của tôi để có thể chỉ định rằng một 'động cơ' phải được truyền vào với constructor, nhưng như tôi không thể, tôi phải đáp ứng với một chú thích XML trên lớp đó.
Tôi nghĩ rằng đó là việc đặt quá nhiều ý nghĩa vào một chi tiết thực hiện: một hàm tạo trong .NET thực sự chỉ là một phương thức được gọi ngay sau khi đối tượng được tạo ra (được cấp phát trong bộ nhớ). Không có lý do gì cũng không thể được định nghĩa là hành vi. Tất nhiên, việc triển khai được tự do khai báo các nhà xây dựng khác, cũng giống như họ có thể quá tải một phương thức thực hiện một giao diện. Các nhà xây dựng trong giao diện sẽ là một tính năng hiếm khi được sử dụng, nhưng không phải là một tính năng vô ích. – EMP
Tôi nghĩ điểm của câu hỏi là: vì nó được xây dựng theo cách này, thực hành tốt nhất là gì? Vì vậy, tôi cho rằng câu trả lời là: bằng cách sử dụng các lớp trừu tượng, vì câu trả lời này nêu rõ: http://stackoverflow.com/a/2804067/1181162 – Vince