C#委托及事件-创新互联-成都快上网建站

C#委托及事件-创新互联

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace 委托及事件
{
    class Program
    {
      
        static void Main(string[] args)
        {
            Emplyee em = new Emplyee();
            Reporter re = new Reporter();
            //指明事件触发后,由谁来处理
            em.PlayGame+=new DelegateClassHandle(re.Notify);
            em.Game();
            Console.ReadKey();
        }
    }
    
    public delegate void DelegateClassHandle(); //定义托管
    
    public class Emplyee //定义员工类
    {
        public event DelegateClassHandle PlayGame;  //定义托管的绑定事件PlayGame
        public void Game()  //定义一个Game方法
        {
            if (PlayGame != null) //判断事件是否为空
            {
                Console.WriteLine("哈哈,开始玩游戏");
                PlayGame();
            }
           
        }
    }

    public class Reporter   //定义一个报告类
    {
        public void Notify() 
        {
            Console.WriteLine("报告老板,有人玩游戏");
        }
    }

带参数的委托:

10年积累的成都做网站、成都网站设计经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站设计后付款的网站建设流程,更有革吉免费网站建设让你可以放心的选择与我们合作。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace 委托及事件
{
    class Program
    {
      
        static void Main(string[] args)
        {
            Employee el = new Employee("二逼青年",888);
            Reporter re = new Reporter();

            //指明事件触发后,由谁来处理
            el.PlayGame+=new DelegateClassHandle(re.Notify);
            el.Game();
            Console.ReadKey();
        }
    }
    /// 
    /// 
    /// 
    /// 触发事件的源
    /// 同时携带的参数
    public delegate void DelegateClassHandle(object sen, cc e); //定义托管

    public class Employee //定义员工类
    {
        string _name;
        int _number;

        public string Name
        {
            get { return _name; }
            set { _name = value; }
        }        

        public int Number
        {
            get { return _number; }
            set { _number = value; }
        }
        
        public event DelegateClassHandle PlayGame;  //定义托管的绑定事件PlayGame

        public Employee(string nm, int nu) {
            _name = nm;
            _number = nu;
        }

        public void Game()  //定义一个Game方法
        {
            if (PlayGame != null) //判断事件是否为空
            {               
                Console.WriteLine("哈哈,开始玩游戏");

             //实例化一个参数类
                cc e = new cc();
                e.Name = _name;
                e.Number = _number;
                PlayGame(this,e);
            }         
        }
    }
    
    public class Reporter   //定义一个报告类
    {
        public void Notify(object sen, cc e) 
        {
            Console.WriteLine("报告老板,{0}在{1}玩游戏",e.Name,e.Number );
        }
    }

    public class cc : EventArgs
    {
       public string Name = "";
       public int Number = 0;
    }
}

创新互联www.cdcxhl.cn,专业提供香港、美国云服务器,动态BGP最优骨干路由自动选择,持续稳定高效的网络助力业务部署。公司持有工信部办法的idc、isp许可证, 机房独有T级流量清洗系统配攻击溯源,准确进行流量调度,确保服务器高可用性。佳节活动现已开启,新人活动云服务器买多久送多久。


文章名称:C#委托及事件-创新互联
URL链接:http://kswjz.com/article/eojoc.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流