c#高级编程委托和事件。
在c#中使用一个类时,分两个阶段。首先需要定义这个类,即告诉编译器这个类由什么字段和方法组成。然后(除非只使用静态方法)实例化类的一个对象。
使用委托时,也需要经过这两个步骤。首先定义要使用的委托,对于委托,定义它就是告诉编译器这种类型代表了那种类型的方法,然后创建该委托的一个或多个实例。
定义委托是从delegate开始的然而它是如何运作的呢。也许弄个鼠标事件会容易理解一些,这里还是拿出书中的例子来。usingsystem;
delegateboolcompareop(objectlhs,objectrhs);classmainentrypoint;
compareopemployeecompareop=newcompareop(<
classemployee//:object",salary);}
publicstaticboolrhsisgreater(objectlhs,objectrhs)}}
usingsystem;
delegateboolcompareop(objectlhs,objectrhs);classmainentrypoint;
compareopemployeecompareop=newcompareop(<
classemployee//:object
第2页。privatestringname;privatedecimalsalary;
publicemployee(stringname,decimalsalary)",salary);}
publicstaticboolrhsisgreater(objectlhs,objectrhs)}}
**中,首先声明了一个delegateboolcompareop(objectlhs,objectrhs)委托,再说说委托:
委托机制是促使事件发送与事件接受的一种对接策略,对象对周围信号的反应或在一定环境中所具备的对其它对象的通知行为的响应则被描述成所谓的“事件”,这可以类比人对周围世界反馈产生信号的能力。委托就是一种定向信号流:指定产生、接受信号者并产生信号反馈的技术。
那么这段委托是怎么把程序连动起来的呢,看后面的**。
首先是compareopemployeecompareop=newcompareop(这里就象定义了一个监听装置,一旦发生了compareop(objectlhs,objectrhs)这个事件就去执行的**。
接下来我们就去看看里面的东西。publicstaticboolrhsisgreater(objectlhs,objectrhs)
第3页。employeeemplhs=(employee)lhs;employeeemprhs=(employee)rhs;
return(>
publicstaticboolrhsisgreater(objectlhs,objectrhs)}}
其中staticpublicvoidsort(objectsortarray,compareopgtmethod)的参数里就有这种我们委托好的compareop了。也就是说一旦运行到if(gtmethod(sortarray[j],sortarray[i]))系统就会去找compareopemployeecompareop=newcompareop(然后找publicstaticboolrhsisgreater(objectlhs,objectrhs)这样就执行到里面的**了。
整个事件响应完成。
第4页。
C 高级编程
第六章熟悉类与对象。6.1 电子 示例介绍。6.2 编写类。6.2.1 类定义。1.方法与成员。2.访问控制。3.声明的顺序。6.2.2 定义方法。1.访问数据成员。2.调用其他方法。指针。6.2.3 使用对象。1.堆栈中的对象。2.堆中的对象 6.3 对象的生命周期。6.3.1 创建对象。1.编写...
6委托和事件
static void add double x,double y x,y,x y static void sub double x,double y x,y,x y static void mul double x,double y x,y,x y static void div double x...
C委托,事件理解入门
c 委托,事件理解入门 译稿 目录 1.导论 2.什么是委托 3.事件的理解 4.事件关键字 5.最后 导论 在学习c 中的委托和事件过程中,我读了许多文章来理解他们二者究竟是怎么一回事,以及如何使用他们,现在我将整个的理解过程陈述以下,我学到的每一方面,恐怕也是你们需要掌握的 什么是委托?委托和事...