委托:声明的关键字delegate
就是代理,事件也是委托,但是是一种特殊的委托;
1、声明委托类型:
2、委托变量的定义及赋值:
3、委托变量的使用:
例:
创建一个项目,写一个委托,添加一个类,类的构造和委托相同
类:
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace 委托 { class jiafa //添加一个类,里面使用方法和委托结构相同 { public int jia(int a, int b)//两个参数一个返回值 { return a + b; } public int jian(int a, int b) { return a - b; } } }
项目:
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace 委托 { public delegate int FirstDel(int a, int b);//在Program类上面,命名空间下面写一个委托,声明一下 //委托类型,注意关键字delegate,添加一个类 class Program { static void Main(string[] args) { //委托不是一个类,没有构造函数,不能进行实例化使用,需要使用一个委托变量赋值一个使用方法, //这里给他赋值添加的类,正常写法一般先实例化一下类 jiafa ff = new jiafa(); //然后再定义一个委托变量去接收这个类里面的使用方法 FirstDel fo = ff.jia;//这个类直接点出使用方法,不需要加括号,传参数 //因为这个方法赋值给了委托变量,直接用委托变量调用里面的方法 int d = fo(5, 4);//给方法传进两个参数,定义一个变量接收一下返回值 Console.WriteLine(d);//打印一下接收到的返回值 //为了程序的便捷性,可以这样写 FirstDel f1 = new jiafa().jia; int c = f1(5, 4);//根据类里面写的方法给他两个参数,定义变量接收一下返回值 Console.WriteLine(c);//打印这个变量接收到的返回值 FirstDel f2 = new jiafa().jian; c = f2(5, 4);//变量c已经定义过数据类型,直接接收返回值 Console.WriteLine(c);//打印接收到的返回值 c = f1(5, 4) + f2(5, 4);//也可以将这两个方法的返回值进行数学运算,用c接收 Console.WriteLine(c);//打印变量c接收到的运算结果 Console.ReadKey(); } } }