2016-03-20 23 views
1

我已經做了很多PHP的過去和那裏你能夠通過槽代碼作爲參數,如果我對它被稱爲可調用C#創建像PHP一樣的可調用

這是怎麼看起來像:

METHOD('Parameter', function() { 
echo "Hey!"; 
}); 

這是可能在C#中?因爲我很樂意這樣做。在方法中作爲參數執行該函數。

回答

0

我awnser,我發佈了這個問題後,很快就發現:

用法:

TestMethod ("Lambda",() => { 
    Console.WriteLine("Expression"); 
}); 

方法:

public void TestMethod (string name, Action action) { 
if(name == "Lambda") { 
    action.Invoke(); 
} 
} 
3

如果我理解正確,你想傳遞一個可調用的函數到另一個方法?要做到這一點,最簡單的方法是使用一個FuncAction參數:

void MyMethod(Action<string> passedInFunc) 
{ 
    passedInFunc("Hey"); 
} 

然後調用它:

MyMethod(s => 
{ 
    Console.WriteLine(s); 
}); 

的行動表示不返回任何值的函數,而函數求是一個返回值的函數。

如果您不想將任何參數傳遞給您的操作,則可以使用non-generic版本。

最後,這些只是delegates,所以你也可以定義你自己的自定義委託並通過那個代替。

+0

謝謝你,在我的貼吧LambaExpression比賽進入了我我想出了它。但是找不到這個問題。我可以自己調整一下。不管怎麼說,多謝拉! –

+0

@joey頂部欄中間的FYI,你可以點擊你的頭像訪問你的個人資料。在那裏你可以找到你問的問題。 –

相關問題