2013-11-23 92 views
0

如果您有以下方法,那麼調用Action參數的結果將返回傳入的泛型T1的類型,那麼如何編寫它?我一直在遇到編譯器錯誤。將對象類型賦值給操作返回?

private static void Test<T1>(T1 report, Action action) 
{ 
    report = action; 

} 
+0

甚至從編譯時錯誤,爲什麼還要有一個參數預留,如果你再要立即忽略它? –

+0

只是我的一個不好的例子。 – user3010406

+1

這裏有一個提示:小心你所要求的 - 答案可能會跟隨你的不佳例子。 –

回答

5

動作返回類型是void即它不返回任何東西。

您需要使用Func<T1>,而不是這樣的 -

private static void Test<T1>(T1 report, Func<T1> action) 
{ 
    report = action.Invoke(); 
} 

OR

private static void Test<T1>(T1 report, Func<T1> action) 
{ 
    report = action(); 
} 
+2

爲什麼不只是'report = action();'? –

+0

是的,它是一樣的。謝謝。 –

+0

爲什麼action.Invoke()甚至存在?可怕的語法。 –