委托的应用:
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();
}
}
}
}