C#:spa
using System; using System.Collections.Generic; using System.Text; namespace Delegate { //定義委託,它定義了能夠表明的方法的類型 public delegate void welcomeDelegate(string name); class Program { private static void EnglishGreeting(string name) { Console.WriteLine("Hello, " + name); } private static void ChineseGreeting(string name) { Console.WriteLine("你好, " + name); } //注意此方法,它接受一個welcomeDelegate類型的方法做爲參數 private static void GreetPeople(string name, welcomeDelegate WelcomeMethod) { WelcomeMethod(name); } static void Main(string[] args) { GreetPeople("Jimm", EnglishWelcome); GreetPeople("吉姆", ChineseWelcome); Console.ReadKey(); } } }
JS:代理
function ChinseWelcome(var name){ alert("你好"+name); } function EnglishWelcome(var name){ alert("hello"+name); } function WelcomePeople(var name,WelcomeMethod) { WelcomeMethod(name); } function test() { WelcomePeople("Jimm",ChinseWelcome); WelcomePeople("吉姆",EnglishWelcome); }
js 的回調與C#有殊途同歸之妙,C#的代理功能更強大,增長了鏈式結構和輪播功能。code