2016-03-14 12 views
0

我是新來的FUNC,我已經定義了Func像下面,如何在C#中獲得Func的TResult?

private Func<int, Type, GridCell> getGridCell; 
public Func<int, Type, GridCell> GetGridCell 
    { 
    get 
    { 
     return getGridCell; 
    } 
    set 
    { 
     getGridCell = value; 
    } 
    } 

而且我不知道如何讓TResult是柵格單元。 您能否就此建議?

+2

您的示例沒有說明所述問題。結果類型在這裏是已知的,因爲它在這裏明確定義。你可以發佈你的代碼,缺乏結果類型的知識? –

+2

你究竟在哪裏面臨問題?你在哪裏期待TResult? – CarbineCoder

+0

您封裝了Func 的getGridCell,因此,無論何時訪問GetGridCell,您都將獲得該函數的定義,而不是它應該返回類型爲GridCell的對象的結果。更好地參考關於定義Func的教程。 –

回答

7

一個Func,直到你把它叫做沒有結果。所以GetGridCell沒有GridCell類型的值 - 這可以是稱爲得到GridCell的功能。例如:

Func<int, Type, GridCell> function = GetGridCell; 
GridCell cell1 = function(1, typeof(string)); 
GridCell cell2 = function(10, typeof(DateTime)); 

被計算究竟如何,取決於GetGridCell的價值 - 它可以做任何事情,基本上,因爲它只是一個功能。

注意,這不是針對Func類型 - 這是代表​​們的總體思路。

+0

嗨喬恩,感謝您回答。我使用下面的代碼調用func,GridCell gridcell = this.DataGrid.GetGridCell(dataColumn.RowIndex,typeof(GridCell)); –