C#事件
电脑版发表于:2021/3/10 17:12
什么是事件
事件是一种特殊的委托,有限制的委托实例
事件只能在内部访问,内部执行,外部无法执行,所以不能破坏封装性。
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();