我有一個包含string
鍵的字典,例如: 123456789
。現在在我的應用程序中的其他位置,我希望我的字典查看這個鍵,並且運行方法本身(存儲在鍵上)或以某種方式返回該函數,以便我可以手動添加參數。這甚至有可能嗎?C#字典存儲操作/方法
-2
A
回答
3
聽起來像一個簡單的任務。 (不包括健全檢查)
Dictionary<string,Action<object>> dict;
public Action<object> GetFunction(string key)
{
return dict[key];
}
public void CallFunction(string key, object parameter)
{
dict[key](parameter);
}
1
你需要創建一個dictionary<string, Action>
,這將是沒有參數。
例如
static class MyActions {
static Dictionary<string,Action> wibble = new Dictionary<string,Action>();
}
我已經使用了靜態,如果您可以傳遞引用/檢索引用,則不需要靜態。
然後加入行動...
MyActions.wibble["123456789"] =() => { // do action };
或引用一個無參數方法
MyActions.wibble["123456789"] =() => MyMethod;
然後調用它;
MyActions.wibble["123456789"]()
假設鍵存在,你可以嘗試使用得到,甚至MyActions.wibble["123456789"]?.Invoke()
如果您需要的參數,使Action<T>
類型或Action<T1, T2>
等根據參數的數量的字典。
如wibble = new Dictionary<string,Action<int>>()
然後wibble["123456789"] = x => {action with x}
和wibble["123456789"](42)
相關問題
- 1. 最好的方法來緩存存儲在C字典#
- 2. 在C#中存儲/檢索字典的最有效方法?
- 3. 字典操作
- 4. 在C++中存儲和操作龐大數字的想法
- 5. C中使用COM互操作字典#
- 6. Python字典存儲
- 7. 操作字典內的字典內容
- 8. IEnumerable C#類操作方法
- 9. 試圖存儲字典作爲變量
- 10. C++連續存儲器操作
- 11. 字典操縱在C#
- 12. 字典存儲對。誰儲存三倍?
- 13. 調用基於ID的字典中存儲的方法使用c#
- 14. Python:多屬性字典使用什麼存儲方法?
- 15. 創建和存儲分類字典的最佳方法
- 16. 存儲/檢索字典的最快方法 - SQL,文本文件...?
- 17. 在文件中存儲大型Python字典的最佳方法
- 18. 處理字典中存儲的「過期」對象的好方法?
- 19. 在磁盤上存儲Python字典的有效方法?
- 20. 有效的方法來存儲字典(哈希)與Python文件?
- 21. 字典值操作快捷
- 22. Python中的字典操作
- 23. 字典差異操作
- 24. 無法測試數據存儲操作
- 25. plist或字典存儲
- 26. 在字典中存儲lambdas
- 27. 在字典中存儲HttpResponse
- 28. 在Rhino.Mocks中存儲字典
- 29. Numpy或Python存儲字典
- 30. 字典不存儲值
是。爲什麼不可能? – CalC
是的,其實很簡單。你可以設定你想要的代表的類型(例如'Action','Predicate'等)。 –
爲什麼不能禁用重力? @ Cal279 – John