我有一个通用接口C#:使用泛型类非泛型类不确定
public interface TheInterface<T> where T : IObject
我也有一个对象类,此接口可与
public class SomeObject : IObject
然后我有一个类实现接口
public class ClassThatWorksWithSomeObject : TheInterface<SomeObject>
这一切都工作得很好。后来我添加了一个与TheInterface类一起工作的类,与他使用的IObject的版本无关。
public class IDoStuffToInterface
{
public IDoStuffToInterface(TheInterface<IObject> interface)
{
//bla bla
}
}
问题是我不能在那里穿过ClassThatWorksWithSomeObject
,即使它从intreface继承和它的通用对象从IObject
继承。
我想有些情况下,如果它可能会伤害,但我想不出任何。
有没有办法做得更好?
在C#类*实现*接口中,它们不从它们继承。 – 2011-02-27 14:01:55
真的,我的一个小错误。 – 2011-02-27 14:16:13
如果TheInterface是一个抽象类而不是一个接口,那么Co/contra-variance将不起作用。 –
2011-02-27 14:24:56