最近在学习c#但是里面的委托和事件只是一个比较难理解的知识点,我觉得委托就是类似c/c++里面的函数指针,声明一个委托就类似于声明一个委托类型.
而在c#中委托类型是静态的它并不属于某个类对象,他可以定义在类内可以可以定义在类外,在类内部定义时需要用类名进行引用.
定义 委托类型:
如 public delegat void Mydelegate();这就相当于在c/c++定义了一个公有类型的 无返回值 无参数的 函数指针.
只是在c#中它可以作为一个类型 去定义一个变量,这个变量就是一个函数的引用也就是函数的指针,
如 用创建的委托类型去创建一个委托变量和给委托变量赋值 Mydelegate test=new Mydelegate(函数名);
给委托变量赋值 实际上就是给这个变量赋一个或开辟一个函数的内存空间,而括号内的函数名就是你所定义的函数,此函数必须和你定义的
委托类型一样,如委托类型是 无返回值,无参数的那么你所定义的函数也必须和此类型相同才能正确初始化委托变量.
如需要使用它则直接像使用函数那样 使用这个委托.
当然你还可以 直接使用匿名方法给委托变量赋值这就相当于在定义数组的时候直接赋初值.
还可以给委托对象添加多个调用方法如;