1. 程式人生 > 其它 >C# 事件event

C# 事件event

技術標籤:C#

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

namespace Events
{
    public class Bridegroom
    {
        //自定義委託
        public delegate void MarryHandler(string msg);
        //使用自定義委託定義事件,事件名MarryEvent
        public event MarryHandler MarryEvent;
        public void onMarriageComing(string msg)
        {
            if(MarryEvent != null)
            {
                //觸發事件
                MarryEvent(msg);
            }
        }
    }

    public class Friend
    {
        public string Name;
        public Friend(string name)
        {
            Name = name;
        }

        public void SendMessage(string mess)
        {
            //處理事件
            Console.WriteLine(this.Name + "收到了,到時候準時參加!");
        }
    }


    class Program
    {
        static void Main(string[] args)
        {
            Bridegroom bridegroom = new Bridegroom();
            Friend friend1 = new Friend("張三");
            Friend friend2 = new Friend("李四");
            Friend friend3 = new Friend("王五");

            bridegroom.MarryEvent += new Bridegroom.MarryHandler(friend1.SendMessage);
            bridegroom.MarryEvent += new Bridegroom.MarryHandler(friend2.SendMessage);

            bridegroom.onMarriageComing("朋友們,結婚了");

            Console.ReadKey();
        }
    }
}

執行: