//声明一个委托 delegateintdel(int val);//有一个proj对象,有满足委托结构的处理方法intfunc(int a){return a;}//指定委托,func就是命名方法,可被赋值
del d=proj.func;
b. 匿名方法:不单独再类中写满足委托格式的处理方法,而是直接将处理用的参数及代码块直接订阅给委托。 例:
using System;namespace Liming
{//创建委托delegatevoidval(int num);classProgram{staticvoidMain(string[] args){//匿名方法,处理方法再方法框中指定
val a=delegate(int num){
System.Console.WriteLine(num);};a(5);}}}
2.由于使用匿名方法无需创建单独的方法,因此可减少对委托进行实例化的编码开销。
using System;using System.Threading;namespace Liming
{classProgram{staticvoidMain(string[] args){//创建一个线程,设置其委托构造参数,而无需创建新的方法,thread(可以后了解),//thread构造函数参数为委托类型。Thread th=newThread(delegate(){
System.Console.WriteLine("a");
System.Console.WriteLine("b");});
th.Start();}}}