代理delegate:
對象引用 指向 某個特定類型的對象。
代理 指向 某個特定類型的方法。
代理四步:
class Program
{
//定義frist代理
public delegate void first(int i);
//主函數,main入口
static void Main(string[] args)
{
//創建first類型引用
first MyDelegate = null;
//創建指向show方法的代理引用
MyDelegate += new first(show);
//通過代理引用調用show方法
MyDelegate(666);
Console.ReadKey();
}
//show方法
public static void show(int i)
{
Console.WriteLine(i.ToString());
}
}
class Program
{
//定義frist代理
public delegate void first(int i);
//主函數,main入口
static void Main(string[] args)
{
//創建first類型引用
first MyDelegate = null;
//創建指向show方法的代理引用
MyDelegate += new first(show);
//通過代理引用調用show方法
diao(666, MyDelegate);
Console.ReadKey();
}
//show方法
public static void show(int i)
{
Console.WriteLine(i.ToString());
}
//
public static void diao(int i,first dele)
{
dele(i);
}
}
事件event:
//定義EventDelegate代理
public delegate void EventDelegate();
class Program
{
//主函數,main入口
static void Main(string[] args)
{
//實例化ClockTimer
ClockTimer clockTimer = new ClockTimer();
//MyEvent中添加OnClockTimer方法
clockTimer.MyEvent += new EventDelegate(OnClockTimer);
//執行clickTimer對象的show方法
clockTimer.show();
Console.ReadLine();
}
//接受方法
public static void OnClockTimer()
{
Console.WriteLine("收到時鐘事件");
}
}
//事件產生類
public class ClockTimer
{
//定義事件(event)
public event EventDelegate MyEvent;
//產生事件方法
public void show()
{
for(int i=0;i<1000;i++)
{
//產生事件
MyEvent();
//睡眠1秒
Thread.Sleep(1000);//System.Threading;
}
}
}
大師們,上面的是我對event和delegate的理解。如果有錯別的地方麻煩您幫我指出來。萬分感謝!