Tôi đang triển khai giao diện chung (iqueryprovider, cụ thể). tại một số điểm, tôi buộc phải trả về một kết quả chung chung, mà tôi cần phải nhận được từ một số giao diện nội bộ:các hạn chế và giao diện biến kiểu chung
public TResult Execute<TResult>(...) {
return something.Foo<TResult>();
}
nơi something.Foo là
public T Foo<T>() where T: MyBaseClass, new() {
...
}
này dĩ nhiên thổi lên vì bên ngoài được xác định TResult không có các hạn chế cùng loại như câu hỏi nội bộ được xác định T.: có cách nào để làm cho TResult ngon miệng với Foo không? tôi có thể bằng cách nào đó một cách rõ ràng kiểm tra cho hai điều kiện và ép buộc biến loại?
* thở dài * trong khi điều đó hoạt động, điều đó thật khó chịu, đặc biệt là trong mã cấp khung. – kolosy
tôi đã kết thúc bằng cách này. Tôi không phải là một fan hâm mộ của sự phụ thuộc mềm vào phương pháp này, nhưng nó đánh bại các hạn chế, và vẫn thực hiện các cuộc gọi phản chiếu trên một số thứ khác mà phương thức nội bộ đã làm. – kolosy