博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#练习委托、事件、事件处理
阅读量:5016 次
发布时间:2019-06-12

本文共 2429 字,大约阅读时间需要 8 分钟。

控制台应用程序效果:

代码:

using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace MyEventTest{    class Program    {        ///         /// 第一步 新建委托需要的带参数的类,属于事件的参数的子类        ///         public class MyClassEventArgs : EventArgs        {            private string name;            public string Name            {                get { return name; }                set { name = value; }            }            private int age;            public int Age            {                get { return age; }                set { age = value; }            }        }        ///         /// //第二步 新建一个带参数的委托        ///         /// 触发源        /// 参数        public delegate void MyDelegate(object sender,MyClassEventArgs mc);        ///         /// 第三步 新建一个会触发事件的类        ///         public class Custom        {            ///             /// 第四步 新建一个委托发生时触发的事件            ///             public event MyDelegate Shout;            private string name;            public string Name            {                get { return name; }                set { name = value; }            }            private int age;            public int Age            {                get { return age; }                set { age = value; }            }            public Custom()            {            }            public Custom(string n, int a)            {                name = n;                age = a;            }            public void Buy()            {                Console.WriteLine("{0}:我要来买东西!",this.name);                //第五步 在方法中关联事件                MyClassEventArgs mcea = new MyClassEventArgs();                mcea.Name = name;                mcea.Age = age;                if (Shout != null)                {                    Shout(this,mcea);                }            }        }        ///         /// 第六步 新建一个事件发生后要执行的类        ///         public class Reporter        {            public void Notify(object sender, MyClassEventArgs mcea)            {                Console.WriteLine("老板:小白快去接客了,客户名字叫{0},年龄{1}岁",mcea.Name,mcea.Age);            }        }        ///         /// 第七步 做一种触发事件的情况,并把事件和事件的处理关联起来        ///         ///         static void Main(string[] args)        {            Custom c1 = new Custom("大美女",18);            Reporter r1 = new Reporter();            c1.Shout +=new MyDelegate(r1.Notify);            c1.Buy();        }    }}

转载于:https://www.cnblogs.com/Mysterious/p/3416484.html

你可能感兴趣的文章
z-stack中数据的发送,广播、组播、点对点
查看>>
Practial Vim 学习笔记一
查看>>
.NET中使用js实现百度搜索下拉提示效果[不是局部刷新,呜呜。。]
查看>>
ITCAST视频-Spring学习笔记(使用Spring的注解方式实现AOP入门)
查看>>
关于二维码“QR”的6大注意事项
查看>>
MySQL - 常用命令及常用查询SQL
查看>>
C# .NET MVC 接收 JSON ,POST,WCF 无缝隙切换
查看>>
android获取USB设备的名称
查看>>
JavaPersistenceWithHibernate第二版笔记-第七章-005排序的集合(@org.hibernate.annotations.SortComparator)...
查看>>
ue4同c#通信时的中文乱码问题
查看>>
黄老师架构师课程笔记(二)
查看>>
mvc性能优化
查看>>
log
查看>>
663 如何做“低端”产品?(如何把低端做得高端 - 认同感)
查看>>
JDBC 第九课 —— 初次接触 JUnit
查看>>
Windows核心编程:第10章 同步设备IO与异步设备IO
查看>>
浏览器加载、解析、渲染的过程
查看>>
开放api接口签名验证
查看>>
sed 常用操作纪实
查看>>
C++复习:对C的拓展
查看>>