C#事件-使用简单实例

1. 在文件 OutputChoose.cs 中封装了方法作为委托:

using System;
using System.Collections.Generic;
using System.Text;

namespace beta
{
    class OutputChoose
    {
        public string message = "你有新消息,请注意查收。";//声明短消息字串
        public delegate void BetaDel(string str);//定义委托注册事件
        public event BetaDel MyEvent;//声明事件
        public void OnLoad()
        {
            if (MyEvent != null)
            {
                MyEvent(message);
            }
        }
    }
}

2.添加一个用户消息类:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace beta
{
    class UserMessage
    {
        public void Output(string str)
        {
            System.Console.WriteLine("用户发送给你一个消息:" + str);
        }
    }
}

3.添加一个系统消息类:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace beta
{
    class SystemMessage
    {
        public void SystemOutput(string str)
        {
            Console.WriteLine("系统发送给你一个消息:" + str);
        }
    }
}

4.在主函数中可以触发事件:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace beta
{
    class Program
    {
        static void Main(string[] args)
        {
            OutputChoose opc = new OutputChoose();
            SystemMessage msg = new SystemMessage();
            opc.MyEvent += msg.SystemOutput;//注册方法
            opc.OnLoad();//开始自动调用所注册的方法
            Console.ReadKey();
        }
    }
}

 

你可能感兴趣的:(.Net,委托/反射/Generic,c#,string,class,output,null)