委托到底是什麽,爲麽需要委托
首先,我們來説説面向對象,所謂面向對象是對不同職階的地位對象的封裝,通俗的說就是專業的事情交給專業的人做;又比如在《fate》中具有七個職階,不同的職階都有其自己的專屬技能和所擅長的領域。
然而,對象想學習新的技能就得繼承,繼承的弊端在于會使一個類過於龐大而且有些方法,并不是我們現在的這個子類所需要的。
來到這裏,就有我們的委托了。我們日常生活中的委托是這樣子的,我們就將我們的快遞交給快遞小哥(我們委托小哥送快遞),但是快遞小哥不僅接受我們的委托還可以接受多個人的委托的嘛(委托的包裝特性,能夠將各個類的方法 組裝到一個委托中),到約定的時間(調用組裝的方法),快遞小哥就給我們把快遞送到指定的客戶手中。
如何用
class program1:
class Program1
{
void printLow()//組裝的函數的返回類型與簽名要與委托的聲明保持一致
{
Console.WriteLine("{0}-Low Value", "L");
}
}
class progaram2:
class Program2
{
void printHeight()//組裝的函數的返回類型與簽名要與委托的聲明保持一致
{
Console.WriteLine("{0}-Hight Value", "H");
}
Main
using System;
namespace Del
{
delegate void MylDel(int value); //第一步:聲明委托類型
static void Main()
{
Program1 program1 = new Program1(); //聲明變量program1
//引用Program1()實例對象
Program2 program2 = new Program1(); //聲明變量program2
//引用Program2()實例對象
MylDel del; //第二步:聲明委托變量
//創建一個包含PrintLow和PrintHight的委托對象並將其賦值給del變量
del = new MylDel( //引用實例化對象
program1.printLow
);
del+=program2.printHeight //添加方法
del(); //執行委托 調用委托中的所有方法
}
}
}
參考
《C#圖解教程》—第十三章 委托 P238~248