问题描述
请高手们多多赐教委托和事件的处理,尽量讲解详细,谢谢!
解决方案
解决方案二:
楼主好好看看这个例子很具体
解决方案三:
学过函数指针没就是哪个东东的意思button.onclick+=neweventhandler(委托指向的函数名)
解决方案四:
解决方案五:
msdn的例子多看看,你就了解了
解决方案六:
http://www.cnblogs.com/jimmyzhang/archive/2007/09/23/903360.html推荐看这个,写得通俗易懂~~~偶也是从这里学的
解决方案七:
委托内部实现就是一个包装的类构造函数是一个类似函数指针的东西和一个委托方法表里面的对象类型以及方法invokebegininvokeendinvoke等
解决方案八:
看看这个一个c#睡前的故事。关于事件和委托的
解决方案九:
这个基础知识,我随手写了个模型,可以还原比如WinForm事件的基础流程,只不过它是通过windows消息控制的,这里简化为成员变量(name)控制,希望对你有用usingSystem;usingSystem.Collections.Generic;usingSystem.Text;usingSystem.Text.RegularExpressions;namespaceConsoleApplication3{classProgram{//一个较为完整的委托-事件模型应用//byjinjazz//http://blog.csdn.net/jinjazz//模型表达//Test对象执行DoTest方法,回调onTest事件,通过参数控制输出staticvoidMain(string[]args){Testt1=newTest();t1.Name="t1";t1.onTest+=newTest.dTest(t_onTest);Testt2=newTest();t2.Name="t2";t2.onTest+=newTest.dTest(t_onTest);t1.DoTest("aaaa");t2.DoTest("bbbb");Console.Read();}staticvoidt_onTest(objectsender,Test.testEventArgsargs){Testt=senderasTest;if(t.Name=="t1")args.Cancled=true;}}classTest{//委托参数publicclasstestEventArgs{publicboolCancled=false;}//委托publicdelegatevoiddTest(objectsender,testEventArgsargs);//事件publiceventdTestonTest;//函数publicvoidDoTest(strings){if(this.onTest!=null){//参数判断testEventArgsarg=newtestEventArgs();this.onTest(this,arg);if(arg.Cancled==true){return;}}Console.WriteLine(s);}//成员变量或属性publicstringName=string.Empty;}}