考慮下面的代碼行:謎語:我爲什麼會發生隱式接口實現錯誤?
public interface IProduct
{
string Name { get; set; }
}
public interface IProductList
{
string Name { get; }
IProduct GetValueObject();
}
public abstract class BaseProductList<T> : IProductList where T : class, IProduct, new()
{
public abstract T GetValueObject();
public string Name { get; set; }
}
這給了我以下警告:
(錯誤1 'ConsoleApplication1.EnumTest.BaseProductList' 不 實現接口成員 「ConsoleApplication1 .EnumTest.IProductList.GetValueObject()'。 'ConsoleApplication1.EnumTest.BaseProductList.GetValueObject()' 無法實現 'ConsoleApplicat ion1.EnumTest.IProductList.GetValueObject()'因爲 它沒有匹配的返回類型 'ConsoleApplication1.EnumTest.IProduct'。 \ cencibel \家園$ \ k.bakker \視覺 工作室 2010 \項目\ ConsoleApplication1 \ ConsoleApplication1 \ EnumTest \的Program.cs 29 23 TestApp)
但當我添加此明確的一段代碼,它的工作原理:
IProduct IProductList.GetValueObject()
{
return GetValueObject();
}
爲什麼不能.Net圖這一個!?
哇......現在我知道當我試着和別人說西班牙語時感覺如何。爲我提供了一些閱讀材料? –
@ KeesC.Bakker:編輯了一個鏈接到答案。基本上這不是專用於泛型 - 它只是一個功能(協變返回類型),一般不支持.NET,並且從來沒有。 –
啊,沒關係,錯過了鏈接。 –