2017-08-16 82 views
-1

我有一個像下面的模型類,不能類型爲MyModel隱式轉換爲System.Collections.Generic.List <T>

public class MyModel 
{ 
    [SQLite.PrimaryKey] 
    public int Id { get; set; } 
    public string Name { get; set; } 
    public string Status { get; set; } 
} 

和接口類,其中在我是誰的返回類型的方法是類型爲MyModel類方法是像下面,

public interface IService 
{ 
    List<MyModel> IGetEmployeeDetails(); 
} 

和上述界面已經在如下我的服務類得到執行,

public List<MyModel> IGetEmployeeDetails() 
{ 
    return _connection.Table<MyModel>().ToList(); 
} 

一切工作正常,我通過上面的實現,但是當我試圖改變我的接口方法一般返回類型,我面臨的問題與我的接口方法的返回類型,像下面

List<MyModel> IGetEmployeeDetails();List<T> IGetEmployeeDetails<T>();我「M越來越

無法隱式轉換類型MyModelSystem.Collections.Generic.List<T>

基本上,我想我的接口方法的返回類型通用的,但我不知道如何在我的服務類中從MyModel到泛型類型的類型結果。

FYI我已經試過以下的情況下,

  • return _connection.Table<MyModel>().ToList<T>();
  • return (List<T>)_connection.Table<MyModel>().ToList(); &等

任何幫助提前被大加讚賞。

回答

0

基本上,我想我的接口方法的返回類型通用的,但 我不知道如何從 MyModel強制轉換在我的服務類的結果,泛型類型。

您正在尋找的是類的級別泛型,而不是函數級別,正如您嘗試的那樣。

如果函數是泛型函數,那麼調用者指定一個T,函數必須處理它。在你的情況下,你需要不同的IService實現,每個都能夠返回不同的集合。所以:

public interface IService<T> 
{ 
    List<T> GetEmployeeDetails(); 
} 

和派生:

public class DerivedService : IService<MyModel> 
{ 
    public List<MyModel> GetEmployeeDetails() 
    { 
     return _connection.Table<MyModel>().ToList(); 
    } 
} 
+0

非常感謝@Gilad綠色,這工作就像一個魅力:) –

+0

@Anamikaunknown - 歡迎您:) –

相關問題