在C#中,我想要做這樣的事情。有沒有辦法存儲一個函數,它的參數在一個變量中以後再調用?
var fn = // set it to the function and parameters it'll use
fn();
在一個假設的例子,說我想和所有它需要執行的參數返回一個函數,我只是想從別的地方執行。
在C#中,我想要做這樣的事情。有沒有辦法存儲一個函數,它的參數在一個變量中以後再調用?
var fn = // set it to the function and parameters it'll use
fn();
在一個假設的例子,說我想和所有它需要執行的參數返回一個函數,我只是想從別的地方執行。
您可以創建一個Action
委託調用帶參數的功能:
var fn =() => OtherFunction(param1, param2);
如果參數可以fn
改變之前被調用,你可以讓他們分配給新的變量參數的副本,如果是按值或
var value1 = param1; // In case of value types.
var value2 = param2; // In case of value types.
var fn =() => OtherFunction(value1, value2);
再後來調用fn
行動:如果是通過參考實施一些Clone
機制
fn();
請注意,如果您在調用fn()之前更改了'param1'或'pram2'的值[它將使用更新後的值,而不是創建委託時的值](https:// blogs .msdn.microsoft.com /無光澤/ 2008/03/01 /理解可變捕獲式-C /)。 –
@ScottChamberlain:是的,的確如此,應該牢記這一點。 –
我以前實際上做過這件事,而我無法記住我的生活。在星期五的凌晨4點之後粉化。謝謝! – Yatrix
var fn =()=> SomeFunction(arg1,arg2); – Evk
downvoter能解釋我的問題有什麼問題嗎?如果我不清楚我在問什麼,我想解決它。 – Yatrix
他們幾乎從來沒有做過...... –