时间: 2021-07-31 作者:daque
1.萎任的实行进程。 开始来看一下萎任,萎任本来即是本领的传播,并大概义本领的实行。事变本来即是规范化了的萎任,为了事变处置进程特制的、略微专科化一点的组播萎任(多点萎任)。底下举一个例子,我感触把萎任的例子和事变的例子比拟,会比拟简单领会。 using system; class class1 { delegate int mathop(int i1,int i2); static void main(string[] args) { mathop op1=new mathop(add); mathop op2=new mathop(multiply); console.writeline(op1(100,200)); console.writeline(op2(100,200)); console.readline(); } public static int add(int i1,int i2) { return i1+i2; } public static int multiply(int i1,int i2) { return i1*i2; } } 开始代码设置了一个委派mathop,其出面配合与两个因变量add()和multiply()的出面(也即是其带的参数典型数目沟通): delegate int mathop(int i1,int i2); main()中代码开始运用新的委派典型证明一个变量,而且初始化委派变量.提防,证明时的参数只有运用委派传播的因变量的因变量名,而不加括号: mathop op1=new mathop(add); (或为mathop op1=new mathop(multiply);) 委派传播的因变量的因变量体: public static int add(int i1,int i2) { return i1+i2; } public static int multiply(int i1,int i2) { return i1*i2; } 而后把委派变量看作是一个因变量名,将参数传播给因变量。 console.writeline(op1(100,200)); console.writeline(op2(100,200)); 2.事变的实行进程 using system; class class1 { static void main(string[] args) { student s1=new student(); student s2=new student(); s1.registerok +=new student.delegateregisterokevent(student_registerok); s2.registerok +=new student.delegateregisterokevent(student_registerok); s1.register(); s2.register(); console.readline(); } static void student_registerok() { console.writeline("hello"); } } class student { public delegate void delegateregisterokevent(); public event delegateregisterokevent registerok; public string name; public void register() { console.writeline("register method"); registerok(); } } 在student类中,先声领会委派delegateregisterokevent(),而后运用event和要运用的委派典型(前方设置的delegateregisterokevent委派典型)证明事变registerok(不妨看作是委派的一个范例。): public delegate void delegateregisterokevent(); public event delegateregisterokevent registerok; 而后在main()因变量中,范例化student类,而后s1.registerok事变委派给了student_registerok 本领。经过“+=”(加即是)操纵符特殊简单地为.net东西中的一个事变增添一个以至多个相应本领;还不妨经过特殊大略的“-=”(减即是)操纵符废除那些相应本领。 而后,当挪用s1.register()时,事变s1.registerok爆发。