你可以做匿名函數在C#中像您可以在JavaScript:函數作爲參數傳遞給方法
的JavaScript:
var s = (function()
{
return "Hello World!";
}());
C#:
var s = new Func<String>(() =>
{
return "Hello World!";
})();
...在JavaScript您可以傳遞函數以由其他函數執行。最重要的是;您可以將參數傳遞給執行的函數:
var f = function (message) // function to be executed
{
alert(message);
};
function execute(f) // function executing another function
{
f("Hello World!"); // executing f; passing parameter ("message")
}
上述示例在C#中可能嗎?
更新
用例:我遍歷了一堆的數據庫,記錄特定的實體。在Log()
的Logger
裏面,我不想打電話給我的第二個功能(F()
),所以我想在課堂外撥打F()
。
...線沿線的東西:
public void F(String databaseName)
{
}
public class Logger
{
public void Log(Function f)
{
var databaseName = "";
f(databaseName);
}
}
更新了我的問題。你能再看一次嗎?也許會更精細些? – roosteronacid 2010-08-23 09:22:33
@roosteronacid:我的例子正是你所需要的:'Action'委託本質上是一個委託,它接受一個字符串並作用於它,然後不返回任何東西......就像'F(string)'in你的榜樣。 –
2010-08-23 09:31:34