菜的像徐坤
排名
6
文章
6
粉丝
16
评论
8
{{item.articleTitle}}
{{item.blogName}} : {{item.content}}
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2024TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术

C#事件

4427人阅读 2021/3/10 17:12 总访问:854247 评论:0 收藏:0 手机
分类: 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();


评价