2010-07-09 14 views
0

我有一個界面如下:泛型方法調用不能從類名稱轉換爲完整的類名稱

public interface ISelectEntity 
{ 
    List<T> GetFromDB<T, O>(O data); 
} 

我實現它StatusCodes類

List<StatusCodes> ISelectEntity.GetFromDB<StatusCodes, StatusCodesInputParameters>(StatusCodesInputParameters data) 
    { 
     return EntitiesClass.PopulateStatusCodes(EntitiesDAL.GetStatusCodes(data)); 
    } 

我內如下但收到以下錯誤:

錯誤2參數'1':無法從'StatusCodesInputParameters'轉換爲'Namespace.StatusCodesInputParamete rs'

假設我的命名空間被稱爲命名空間,那就是我收到的錯誤。所有這些都在這個名字空間內。我究竟做錯了什麼?

回答

1

您不能在派生類中更改方法簽名。你可以定義接口的通用說法雖然不是做它的方法:

public interface ISelectEntity<T, O> 
{ 
    List<T> GetFromDB(O data); 
} 

和樣品明確的實現可能是這樣的:

public class Foo : ISelectEntity<StatusCodes, StatusCodesInputParameters> 
{ 
    List<StatusCodes> ISelectEntity<StatusCodes, StatusCodesInputParameters>.GetFromDB(StatusCodesInputParameters data) 
    { 
     return EntitiesClass.PopulateStatusCodes(EntitiesDAL.GetStatusCodes(data)); 
    } 
} 

和樣本隱含的實現:

public class Foo : ISelectEntity<StatusCodes, StatusCodesInputParameters> 
{ 
    public List<StatusCodes> GetFromDB(StatusCodesInputParameters data) 
    { 
     return EntitiesClass.PopulateStatusCodes(EntitiesDAL.GetStatusCodes(data)); 
    } 
} 
+0

非常感謝!我沒有意識到。 – DougJones 2010-07-09 14:51:04

相關問題