有可能實現這樣的事情嗎?我在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 –