2012-12-08 116 views
3

具體類和接口沒有匹配返回類型的錯誤我有下面的接口和具體類。IEnumerable <T>和List <T>

我得到的錯誤:

「DAL.Model.Audit.Categories」無法實現「DAL.Interfaces.IAudit.Categories」,因爲它不具備系統的」匹配的返回類型。 Collections.Generic.IEnumerable」。

任何人都可以請解釋我在做什麼錯在這裏?

public interface IAudit 
{ 
    IEnumerable<ICategory> Categories { get; set; } 
    IEnumerable<IAuditAnswer> Answers { get; set; } 
} 

public class Audit : IAudit 
{ 
    public List<ICategory> Categories { get; set; } 
    public List<IAuditAnswer> Answers { get; set; } 
} 
+2

http://msdn.microsoft.com/en-us/library/ms228359(v=vs.90).aspx –

+1

感謝您的鏈接,這有助於解釋爲什麼我的假設是錯誤的。 – Pricey

回答

6

實現一個接口時,必須尊重合同:

public class Audit : IAudit 
{ 
    public IEnumerable<ICategory> Categories { get; set; } 
    public IEnumerable<IAuditAnswer> Answers { get; set; } 
} 

在2個屬性定義IEnumerable<T>接口,所以在您的實現類,你應該使用相同類型的List<T>

+0

感謝您展示解決方案。 – Pricey

1

之所以這並未沒有特別的工作是因爲IListIEnumerable更專業。

在你的腦海中,你(我會猜測)你認爲IList實現IEnumerable所以'爲什麼我不能使用它?真正的答案在於this stackoverflow response

相關問題