下例演示了C#1.0到3.0委托的创建过程:
public partial class delegate_Default2 : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { //C#1.0的委托创建过程 TestDeleggate del = new TestDeleggate(W); del(); //C#2.0可以采取这种方式建立委托 del = delegate() { Response.Write("匿名方法的委托<br/>"); }; del(); //Lambda表达式建立的委托 del = () => { Response.Write("Lambda表达式建立委托<br/>"); }; del(); } static void W() { HttpContext.Current.Response.Write("来自静态方法<br/>"); } } public delegate void TestDeleggate();
结果:
在C#1.0中,可以通过使用在代码中其他位置定义的方法显式初始化委托来创建委托的实例.
在C#2.0中,可以使用匿名方法的概念,在声明委托的同时赋值给其代码段,此代码段即为一个匿名方法
在C#3.0中,可以使用Lambda表达式,这种表达式与匿名方法类似,更为简练.