关键字:Delegate(委托)
定义:委托(Delegate) 是存有对某个方法的引用的一种引用类型变量,可以理解成是C++中的函数指针。
声明 :委托声明决定了可由该委托引用的方法,委托可指向一个与其具有相同标签的方法。
public delegate int Mydelegate (int X,int Y);
上述语句声明了一个带有两个整型形参,返回值为整型的委托 Mydelegate
该委托可以指向具有相同标签的方法,如下:
//相加方法 public int Add(int X, int Y) { return X + Y; }
实例:
1 using System; 2 3 namespace Delegate 4 { 5 //声明委托 6 public delegate int mydelegate(int x, int y); 7 class Program 8 { 9 //Main方法 10 static void Main(string[] args) 11 { 12 //实例化类 13 Program pg = new Program(); 14 //相加方法委托实例 15 mydelegate mydelegate_add = new mydelegate(pg.Add); 16 //相乘方法委托实例 17 mydelegate mydelefate_mul = new mydelegate(pg.Mul); 18 //相减方法委托实例 19 mydelegate mydelefate_sub = new mydelegate(pg.Sub); 20 //相除方法委托实例 21 mydelegate mydelefate_div = new mydelegate(pg.Div); 22 //计算1+2 并输出 23 Console.WriteLine(mydelegate_add(1, 2)); 24 //计算2-1 并输出 25 Console.WriteLine(mydelefate_sub(2, 1)); 26 //计算1*2 并输出 27 Console.WriteLine(mydelefate_mul(1, 2)); 28 //计算2/1 并输出 29 Console.WriteLine(mydelefate_div(2, 1)); 30 //固定控制台 31 Console.ReadLine(); 32 } 33 //相加方法 34 public int Add(int X, int Y) 35 { 36 return X + Y; 37 } 38 //相乘方法 39 public int Mul(int X,int Y) 40 { 41 return X * Y; 42 } 43 //相减方法 44 public int Sub(int X, int Y) 45 { 46 return X - Y; 47 } 48 //相除方法 49 public int Div(int X ,int Y ) 50 { 51 return X / Y; 52 } 53 54 } 55 }
运行结果: