2011-01-14 31 views
1

我需要實現一個函數返回Expression<Func<MyObject, T>>,其中T可能是一個整數,字符串或日期時間。 調用者將不知道T的類型。 我想實現的是一個函數,它創建一個可用於Linq OrderBy函數的謂詞。 應該是這樣的:如何使通用函數返回int或日期或字符串

class FilterCreator { 
    ... 
    Expression<Func<MyObject, T>> getOrderExpression() 
    { 
    ... 
    } 
} 

class Consumer{ 
    void mymethod() 
    { 
     var orderedList = MyList.OrderBy(filterCreator.getOrderExpression()); 
    } 
} 

回答

1

泛型不這樣工作。你將不得不讓呼叫者知道T的類型或用Object替換T.

+0

T的類型的允許範圍是接口的一部分,必須與接口一樣公開。 – 2011-01-14 15:48:46

相關問題