我已經做了很多PHP的過去和那裏你能夠通過槽代碼作爲參數,如果我對它被稱爲可調用。C#創建像PHP一樣的可調用
這是怎麼看起來像:
METHOD('Parameter', function() {
echo "Hey!";
});
這是可能在C#中?因爲我很樂意這樣做。在方法中作爲參數執行該函數。
我已經做了很多PHP的過去和那裏你能夠通過槽代碼作爲參數,如果我對它被稱爲可調用。C#創建像PHP一樣的可調用
這是怎麼看起來像:
METHOD('Parameter', function() {
echo "Hey!";
});
這是可能在C#中?因爲我很樂意這樣做。在方法中作爲參數執行該函數。
我awnser,我發佈了這個問題後,很快就發現:
用法:
TestMethod ("Lambda",() => {
Console.WriteLine("Expression");
});
方法:
public void TestMethod (string name, Action action) {
if(name == "Lambda") {
action.Invoke();
}
}
如果我理解正確,你想傳遞一個可調用的函數到另一個方法?要做到這一點,最簡單的方法是使用一個Func或Action參數:
void MyMethod(Action<string> passedInFunc)
{
passedInFunc("Hey");
}
然後調用它:
MyMethod(s =>
{
Console.WriteLine(s);
});
的行動表示不返回任何值的函數,而函數求是一個返回值的函數。
如果您不想將任何參數傳遞給您的操作,則可以使用non-generic版本。
最後,這些只是delegates,所以你也可以定義你自己的自定義委託並通過那個代替。
謝謝你,在我的貼吧LambaExpression比賽進入了我我想出了它。但是找不到這個問題。我可以自己調整一下。不管怎麼說,多謝拉! –
@joey頂部欄中間的FYI,你可以點擊你的頭像訪問你的個人資料。在那裏你可以找到你問的問題。 –