我編寫了大量的語言:Java
,PHP
,C#
,JQuery
僅舉幾個,但我只公平在C#中產中等和我很困惑,如何使用匿名函數。我見過多次提到Action<T>
,lambda
和delegates
,但我不知道它們是什麼,他們怎麼回事:我感到困惑在C#中可選的匿名函數
我(但)很習慣將jQuery這確實是這樣的:
function hello(fnc){
console.log("Hello");
if (typeof fnc === "function") fnc();
}
hello(); //prints "Hello"
hello(function() {console.log("World"); }); //prints "Hello\nWorld"
現在,我用這個作爲一個例子:我該怎麼做,這是C#
我也很好奇,會發生什麼情況classes
EG:
class foo
{
public void action()
{
Debug.WriteLine("Hello");
}
public void action(Delegate fnc)
{
action();
control.Invoke((MethodInvoker)fnc);
}
}
foo FOO = new foo();
FOO.action(); //prints "Hello"
FOO.action(() => { //prints "Hello\nWorld"
Debug.WriteLine("World");
});
所以我的問題是:a)這是否工作/ AM I C失去(我不能檢查我不在工作電腦atm)和b)如何傳遞參數(即一個範圍問題):
foo FOO = new foo();
string yay = "Yeah";
FOO.action(() => { //prints "Hello\nWorldYeah"
Debug.WriteLine("World" + yay);
});
編輯
-1叫它
?爲什麼....... – user26676
@eddie_cat不確定你的意思?你在問我爲什麼寫了高度全面的僞代碼這個問題?如果是這樣,我會關心和注意,因爲我想知道如何形成它。很好的回答tho – user26676
我想你已經來到了錯誤的網站eddie謝謝你的答案,他們很感激,但我想這個問題得到一些真實的答案,你有一個糟糕的一天嗎?我一直在努力嘗試它,我花了幾個小時嘗試任何方式..一些如何顯示你眼中缺乏研究? – user26676