有可能实现这样的事情吗?我在SomeClass类的声明中遇到此代码的问题。C#泛型和接口
是我收到的例外是:
'WindowsFormsApplication1.SomeClass' 不实现接口成员 'WindowsFormsApplication1.IB.SomeGetter'。 'WindowsFormsApplication1.SomeClass.SomeGetter'不能实现'WindowsFormsApplication1.IB.SomeGetter',因为它没有匹配的返回类型'WindowsFormsApplication1.MyClass'。
我的代码:
public interface IA
{ }
public interface IB
{
MyClass<IA> SomeGetter { get; }
}
public class A : IA
{ }
public class MyClass<T>
where T : IA
{ }
public class SomeClass : IB
{
public MyClass<A> SomeGetter
{
get { return new MyClass<A>(); }
}
}
任何想法,该怎么办呢?
上SomeClass的吸气剂实施MyClass的,不是MyClass的 –
你需要在协方差和逆变泛型读了起来:http://msdn.microsoft.com/en-us /library/dd799517.aspx –