Được rồi, như bạn có thể biết, kế thừa tĩnh là không thể trong C#. Tôi hiểu rằng, tuy nhiên tôi bị mắc kẹt với sự phát triển của chương trình của tôi.C# Thiếu thừa kế tĩnh - Tôi nên làm gì?
Tôi sẽ cố gắng làm cho nó đơn giản nhất có thể. Giả sử mã của chúng ta cần quản lý các đối tượng đang trình bày máy bay ở một số sân bay. Các yêu cầu như sau:
Có thành viên và phương pháp được chia sẻ cho tất cả các máy bay
Có rất nhiều loại máy bay, mỗi loại có thể có phương pháp thêm riêng của mình và các thành viên. Có thể có nhiều trường hợp cho mỗi loại máy bay.
Mỗi loại máy bay phải có tên thân thiện với loại này và thông tin chi tiết hơn về loại này. Ví dụ một lớp có tên F16 sẽ có một thành viên tĩnh FriendlyName với giá trị của "Lockheed Martin F-16 Fighting Falcon".
Các lập trình viên khác sẽ có thể thêm nhiều máy bay hơn, mặc dù chúng phải được thực thi để tạo ra các chi tiết tĩnh tương tự về các loại máy bay. Trong một số GUI, cần có một cách để cho phép người dùng thấy danh sách các loại có sẵn (với các chi tiết như FriendlyName) và thêm hoặc loại bỏ các cá thể của máy bay, được lưu, cho phép nói, với một số tệp XML .
Vì vậy, về cơ bản, nếu tôi có thể thực thi các lớp thừa kế để thực hiện các thành viên và phương pháp tĩnh, tôi sẽ thực thi các loại máy bay để có thành viên tĩnh như FriendlyName. Đáng buồn là tôi không thể làm điều đó.
Vì vậy, thiết kế nào tốt nhất cho kịch bản này?
Lưu ý: Vì mọi loại có thể có các thành viên khác nhau, GUI có thể trông khác nhau đối với từng loại. Đó là lý do tại sao mọi loại máy bay nên có một phương pháp tĩnh (hoặc cái gì khác) mà trả về một tập hợp các phần tử (hộp văn bản, hộp kiểm, vv - nvm cách nó được đóng gói). Một lần nữa - Tôi không muốn tạo các phiên bản trống cho tất cả các loại mỗi lần tôi muốn đọc chi tiết của chúng hoặc nhận các phần tử GUI. – yellowblood