我有一个通用接口(interface)
public interface TheInterface<T> where T : IObject
我还有一个与此接口(interface)一起使用的对象类
public class SomeObject : IObject
然后我有一个实现接口(interface)的类
public class ClassThatWorksWithSomeObject : TheInterface<SomeObject>
这一切都很好。稍后我添加了一个与 TheInterface 类一起工作的类,与他使用的 IObject 版本无关。
public class IDoStuffToInterface
{
public IDoStuffToInterface(TheInterface<IObject> interface)
{
//bla bla
}
}
问题是我无法在其中传递 ClassThatWorksWithSomeObject
,即使它继承自接口(interface)并且它的通用对象继承自 IObject
。
我想在某些情况下,如果这样做可能会造成伤害,但我想不出有什么。
有没有办法做得更好?
最佳答案
我不知 Prop 体实现方式,你可以试试:
public interface TheInterface<out T> where T : IObject
如果你使用的是 C#4.0
关于C#:使用泛型类的非泛型类未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5133594/