Tôi cần một số lời khuyên/giúp đỡ về điều này, tôi không thể nhìn thấy gỗ từ cây nữa.C# Đúc generics (hiệp phương sai và contravariance?)
Đây là một chuỗi các lớp học hướng thẳng tiến hành một số giao diện sử dụng Generics.
Sau đó, tôi đang cố gắng để đúc các loại bê tông ví dụ:
MyGenericObject<SomeObject> _obj;
IMyGenericObject<ISomeObject> _genObj = (IMyGenericObject<ISomeObject>)_obj;
// không hợp lệ đúc
Tôi đã đọc một số bài viết về hiệp phương sai và contravariance nhưng không quá rõ ràng lý do tại sao wouldn này' t có thể, hoặc làm thế nào để làm tròn nó?
Vì vậy, trong ví dụ này:
public interface IMyObject<in T> where T : IBaseObject
{
T Activity { get; set; }
}
sẽ không hoạt động ...
.... bởi vì, bạn không thể nhận và thiết lập thuộc tính Hoạt động .
Trong ví dụ này, tôi cần phải làm:
public interface IMyObject<out T> where T : IBaseObject
{
T Activity { get; }
}
hy vọng rằng sẽ giúp ai đó, và cảm ơn tất cả sự giúp đỡ!
Vui lòng hiển thị định nghĩa giao diện của bạn –