Tôi có một loại từ điển đặc biệt. Tôi không chắc chắn làm thế nào để làm điều này chính xác, nhưng tôi đang tìm cách để làm cho phương pháp có được ảo, nhưng không phải là phương pháp thiết lập:C# Chỉ mục thuộc tính - Bất kỳ cách nào để ảo hóa phương thức nhận và không phải là phương thức đã đặt?
public TValue this[TKey key]
{
get { ... }
set { ... }
}
Có thể và nếu như vậy kết hợp chính xác là gì?
những gì bạn muốn đạt được bằng cách chỉ làm cho bộ thu «ảo'? Có thể có cách tốt hơn để làm điều đó. –
Chỉ cố gắng làm cho nó có thể mở rộng "ReadOnlyDictionary" của tôi. Bởi vì nó là một từ điển chỉ đọc, tôi không hỗ trợ phương thức set (ném một ngoại lệ), nhưng một lớp mở rộng có thể muốn thực hiện công việc bổ sung từ phương thức get, do đó chúng có thể ghi đè lên nó và sửa đổi nó. –
Hơn bạn không nên cố gắng làm cho phương thức "get" ảo, mà thay vào đó có một số phương thức "OnGetCalled" ảo và cho phép lớp dẫn xuất ghi đè lên nó. Lớp có nguồn gốc sẽ không thể ghi đè "get" (tức là theo gợi ý của Mark) mà không cần gọi phiên bản Base, vì vậy phương thức riêng biệt sẽ làm cho hợp đồng rõ ràng. –