1.什麼是委托? 1.1委托是一種引用類型,該類型適用於將方法用特定的簽名封裝,我們可以將委托理解為一個封裝了函數指針和方法的特殊類型。 1.2使用委托我們可以將方法封裝在委托中,然後調用委托就可以調用其中的方法 2.委托的基本聲明格式 修飾符 delegate 返回類型 委托名(參數列表)——返回 ...
1.什麼是委托?
1.1委托是一種引用類型,該類型適用於將方法用特定的簽名封裝,我們可以將委托理解為一個封裝了函數指針和方法的特殊類型。
1.2使用委托我們可以將方法封裝在委托中,然後調用委托就可以調用其中的方法
2.委托的基本聲明格式
修飾符 delegate 返回類型 委托名(參數列表)——返回類型和參數列表要和方法一致
3.如何理解委托
3.1我們可以將委托看作一個箱子,將返回類型和參數列表看作是放進箱子物品的約束了,
將方法看作一個能都被放進箱子裡面的物品,當約束被滿足,我們就可以將方法放到箱子裡面。
4.委托的基本使用規則
4.1首先我們先聲明一個委托
4.2創建一個委托實例
4.3根據委托定義一個方法
4.4使用委托調用方法
4.5將委托與方法關聯起來
5.下麵通過代碼理解委托
5.1首先我們有一個用來列印字元串的類
class PrintClass
{
//.定義一個用來列印字元串的方法
public void Print(string str)
{
Console.WriteLine("str");
}
}
5.2現在我們定義一個用來列印Hello的類 裡面有一個列印Hello的方法,但是我們不想在自己裡面來做列印的動作,我們想要將這個動作交給 PrintClass來做
好了現在我們可以使用委托來完成這件事
class HelloClass
{
public void PrintHello()
{
}
}
5.2.1首先我們先在類外聲明一個委托
public delegate void PrintHandler(string str);
5.2.2我們在 HelloClass類中創建一個委托實例
public PrintHandler PrintHandle;
5.2.3由於我們已經有一個方法了所以這一步跳過 如果沒有 我們就創建一個方法
5.2.4我們在PrintHello中調用委托激活方法
//列印Hello
public void PrintHello()
{
//我們要在這裡判斷一下委托是否可以被調用
if(PrintHandle!=null)
{
//5.激活委托
PrintHandle.Invoke("Hello");
}
}
5.2.5 我們現在已經準備好了只要將委托與方法關聯起來 當調用HelloClass中的PrintHello()的時候 就會調用到PrintClass中的Ptint()
static void Main(string[] args)
{
PrintClass Pc = new PrintClass();
HelloClass Hc = new HelloClass();
//4.將委托和方法關聯
Hc.PrintHandle = Pc.Print;
Hc.PrintHello();
}
6.最後希望可以幫助大家對委托有一個基本的認識