排名
7
文章
192
粉丝
15
评论
16
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:
50010702506256


欢迎加群交流技术

什么是事件
事件是一种特殊的委托,有限制的委托实例
事件只能在内部访问,内部执行,外部无法执行,所以不能破坏封装性。
Event关键字可以起到限制event的作用!
事件也是一种标准
事件只能+=或者-=
事件声明(与委托相似,只是多加了一个event)
- //定义一个标准事件(标准的事件有两个参数)
-
- //sender是触发这个事件的控件源,即这个事件是由哪个控件触发的。
-
- //e是个事件参数,EventArgs 是事件参数基础事件类。
- public delegate void May(object sender, EventArgs e);
- //事件名
- public event May miao;
事件传递字符串信息
- //需要重新定义一个类,继承EventArgs,使事件接收字符串
- public class CatMessage : EventArgs
- {
- public string message;
- }
-
- //通过定义的类来获取字符串
- CatMessage catMessage = new CatMessage();
- catMessage.message = "抓老鼠";
事件的调用
- //输出老鼠跑的方法
- public static void Mouse_Run(object sender, EventArgs e)
- {
-
-
- //实例化字符串的类
- ConsoleApplication1.Cat.CatMessage cat = e as ConsoleApplication1.Cat.CatMessage;
- //实例化本身的颜色
- Cat catcolor = sender as Cat;
-
- Console.WriteLine(catcolor.color + "猫因为" + cat.message + "叫了");
- //实例化猫的类
- Cat cat = new Cat();
- cat.color = "白";
- //绑定自定义事件
- cat.miao += Cat_miao;
- cat.CathMouse();
- }
-
-
- //先实例化包含事件的类
- Cat cat = new Cat();
- //再绑定自定义事件
- cat.miao += 方法名;
- //执行包含事件 miao 方法
- cat.CathMouse();
评价