我想了解「回調模式」。每個答案都說這是由代表(我知道他們)完成的。但在答案的代碼是這樣的:C#代表,爲什麼我們需要它們?
public delegate void Callback(string result);
public void Test()
{
CallBack callback = CallbackFunction;
DoWork(callback);
}
public void DoWork(CallBack callback)
{
callback("Hello world");
}
public void CallbackFunction(string result)
{
Console.WriteLine(result);
}
我真的不明白,爲什麼我們需要爲此委託?我們也可以這樣做嗎?
public void Test()
{
DoWork();
}
public void DoWork()
{
CallbackFunction("Hello world");
}
public void CallbackFunction(string result)
{
Console.WriteLine(result);
}
除此之外,例如在Java中,回調意味着在事件發生後真正的「返回」主程序的「特定功能」。但是當我們使用代表時,這不就是在調用另一種方法嗎?
我們如何進行回調,最終調用OnFail()
方法失敗,並且OnSuccess()
方法成功。我很困惑。有人可以幫助我理解這一點嗎?
委託是函數模板可以在當前上下文'使用的DoWork '在你的情況。最簡單的例子是事件處理程序。 – Fabio
我知道,但我爲什麼要使用它?特別是回調?它沒有做回調?此外,調用一個方法和它的名稱並調用一個調用方法名稱的委託之間有什麼區別? – Zapdos
已經有幾個答案涵蓋了爲什麼你會使用代表。 http://stackoverflow.com/questions/3567478/delegates-why – Equalsk