2014-01-13 59 views
-1

如何使帶有lambda函數的字典具有Func <>包含不同數量的參數?如何使帶有lambda函數的字典具有不同數量的參數

Dictionary<string, Func<T, double>> operationsList 
    = new Dictionary<string, Func<T, double>>(); 

它的桅杆是如此嗎?

+1

你能一點點更具體一點,那還不是很清楚。 –

+2

假設你做了,你會如何使用這樣的字典? – Douglas

+0

你不能。字典只存儲一種類型。如果要存儲異構對象,則必須使用「對象」或「動態」,然後轉換爲所需的類型。 –

回答

1

你可以讓你的字典式Delegate,但我敢肯定,呼籲Func<>這種方式存儲將是一個痛苦:

var dict = new Dictionary<int, Delegate>(); 
dict.Add(1, (Func<int, int>)((int x) => x * 10)); 
dict.Add(2, (Func<int>)(() => 10)); 

呼叫:

var result1 = dict[1].DynamicInvoke(10); 
var result2 = dict[2].DynamicInvoke(); 
+0

如何返回值? – Zverit

相關問題