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