委托 说白了就像是C语言中的 函数指针
一个很简单的例子
按钮触发单击事件 消息自动显示
源码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 委托
{
//项目说明:用委托的方式实现 按钮点击显示消息
public class btn //此次事件的父项【按钮】
{
//父项 定义委托 并用委托声明事件
public delegate void bt_click();
public event bt_click bt_click_event;
//在方法中包含此事件(只要点击此事件就自动发生 传给子项)
public void click()
{
Console.WriteLine("我点了按钮");
bt_click_event(); //注意事件最好放在最后 书写
}
}
public class msg //此次事件的子项【消息】
{
public void ShowMsg()
{
Console.WriteLine("开始显示信息并输出");
Console.ReadLine();
}
}
class Program
{
static void Main(string[] args)
{
//实例化两个对象(父子项)
btn bt = new btn();
msg mg = new msg();
//将付项的事件绑定到子项方法(也可以叫订阅父项事件) 用方法订阅事件
bt.bt_click_event += new btn.bt_click(mg.ShowMsg);
bt.click();
}
}
}