委托与事件

来源:互联网 发布:软件使用次数限制 编辑:程序博客网 时间:2024/06/07 04:45

委托的应用:
1.多线程——线程由多个进程组成【windows任务管理器】
2.自定义类或控件、通信、事件[可以将用户名和密码写成一个事件]

事件:event Delegate事件和委托配合使用

通过委托来实现事件的功能的问题:
1.可以在类的内部来触发,也可以在类的外部触发。因为委托变量必须是
public类型的。
2.委托变量的赋值方式可以使用=,这样就有可能把之前的委托指向覆盖

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

namespace _914
{public delegate void DoDelegate();
    class Program
    {
        static void Main(string[] args)
        {
            Bowuguan bowuguan = new Bowuguan();
            bowuguan.doSth = Delegate;
            bowuguan.PressButton();
            //bowuguan.Alert();
            bowuguan.doSth();//这里即使没有报警,不按下按钮,想调

用代理方法doSth()方法,就可以调用。???
           
           
            Console.ReadKey();
        }
        static void Delegate()
        {
            Console.WriteLine("通知110,通知120,通知保险公司");
        }
        public class Bowuguan
        {
            public DoDelegate doSth;
        //报警()
            public void Alert()
            {
                //Console.WriteLine("叮叮叮,发出报警,通知保安!

");
                //DoSth();
                if (doSth !=null)
                { doSth(); }

            }
       //按下警铃时
            public void PressButton()
            {
              Alert();
             }
        }
    }
}

 

原创粉丝点击