委托事件

后台

namespace WindowsFormsApplication1
{
    /// <summary>
    /// 刷卡验证 类
    /// </summary>
   public class Card
    {
        public delegate void shuaka(object txt);
        public event shuaka shuashijian;
        public void shua(string carnumber, object txt)
        {
            if (carnumber == "123")
            {
                if (shuashijian != null)
                {
                    shuashijian(txt);
                }
            }
        }
    }
}

//定义一个食堂类

public  class 食堂
    {
        public 食堂(Card m)
        {
            m.shuashijian += new Card.shuaka(obs);
        }
        public void obs(object txt)
        {
            ((TextBox)txt).Text = "打饭";
        }

        
    }

//定义一个饮水类

public class 饮水cs
    {
        public 饮水cs(Card sc)
        {
            sc.shuashijian += new Card.shuaka(OpenDoor);

        }
        public void OpenDoor(object txt)
        {
            ((TextBox)txt).Text = "流水";
        }
    }

//空调的类

public class AirConditione
    {
        /// <summary>
        /// 空调
        /// </summary>
        /// <param name="m"></param>
        public AirConditione(Card m)
        {
            m.shuashijian += new Card.shuaka(od);
        }
        public void od(object txt)
        {
            ((TextBox)txt).Text = ((TextBox)txt).Text + " 开空调";
        }
    }

前台

  /// <summary>
        /// 饮水
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button2_Click(object sender, EventArgs e)
        {
            Card scc = new Card();
            饮水cs d = new 饮水cs(scc);
            scc.shua("123", textBox1);
        }
        /// <summary>
        /// 食堂
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button1_Click(object sender, EventArgs e)
        {
            Card s = new Card();
            食堂 p = new 食堂(s);
            s.shua("123", textBox1);
        }
        /// <summary>
        /// 多播
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button3_Click(object sender, EventArgs e)
        {
            Card m = new Card();
            食堂 s = new 食堂(m);
            AirConditione shu = new AirConditione(m);
            m.shua("123", textBox1);
        }

原文地址:https://www.cnblogs.com/net520/p/7928282.html