Có thể triển khai một lớp được ràng buộc với hai tham số chung duy nhất không?Một lớp học chung với hai loại không độc nhất (duy nhất)
Nếu không, có phải vì nó chưa được thực hiện hoặc không thể cho cấu trúc ngôn ngữ (thừa kế) không?
Tôi muốn một cái gì đó có dạng:
class BidirectionalMap<T1,T2> where T1 != T2
{
...
}
Tôi đang thực hiện một Bidirectional dictionary. Đây chủ yếu là một câu hỏi về sự tò mò, không cần thiết.
Được diễn giải từ các ý kiến:
Dan: "hậu quả tiêu cực là gì nếu ràng buộc này không được đáp ứng"
Tôi: "Sau đó, người dùng có thể lập chỉ mục với bản đồ [t1] và bản đồ [t2]. Nếu họ cùng loại, sẽ không có sự phân biệt và sẽ không có ý nghĩa gì".
Dan: Trình biên dịch thực sự cho phép [hai tham số kiểu chung để xác định các quá tải phương thức riêng biệt], vì vậy tôi tò mò; tùy ý chọn một trong các phương thức để gọi?
Bạn luôn có thể ném một 'mới ShouldBeCompileTimeError()' trong hàm tạo . :-) – foson
có lẽ bởi vì nó không có ý nghĩa, chúng là generics, một cái gì đó mà không nên "bị ràng buộc" bởi các loại. – GriffinHeart
Vì tò mò, hậu quả tiêu cực là gì nếu hạn chế này không được đáp ứng? Một ánh xạ giữa các đối tượng từ cùng một bộ là một yêu cầu rất phổ biến. –