排名
6
文章
6
粉丝
16
评论
8
{{item.articleTitle}}
{{item.blogName}} : {{item.content}}
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2024TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术
分类:
Csharp
什么是事件
事件是一种特殊的委托,有限制的委托实例
事件只能在内部访问,内部执行,外部无法执行,所以不能破坏封装性。
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();
评价