委托,讀作wěi tuō,意思是將自己的事務(wù)囑托他人代為處理。同時委托是一個類,它定義了方法的類型,使得可以將方法當(dāng)作另一個方法的參數(shù)來進行傳遞,這種將方法動態(tài)地賦給參數(shù)的做法,可以避免在程序中大量使用If-Else(Switch)語句,同時使得程序具有更好的可擴展性。
委托_委托 -引言
委托是一個類,它定義了方法的類型,使得可以將方法當(dāng)作另一個方法的參數(shù)來進行傳遞,這種將方法動態(tài)地賦給參數(shù)的做法,可以避免在程序中大量使用If-Else(Switch)語句,同時使得程序具有更好的可擴展性。
委托_委托 -詞語釋義
【詞語】:委托
【注音】:wěi tuō
【釋義】:1.將自己的事務(wù)囑托他人代為處理。2.交結(jié),結(jié)納。3.猶依托,依靠。
委托_委托 -引用類型
一種引用類型,它是 C++ 函數(shù)指針的托管版本。委托可以引用實例和靜態(tài)(在 Visual Basic 中為 Shared)方法,而函數(shù)指針只能引用靜態(tài)(在 Visual Basic 中為 Shared)方法。
在C#中,委托是一種可以把引用存儲為函數(shù)的類型。

委托
委托的聲明非常類似于函數(shù),但不帶函數(shù)體,且要使用delegate關(guān)鍵字。
委托的聲明指定了一個函數(shù)簽名,其中包含一個返回類型和參數(shù)列表。
在定義了委托后,就可以聲明該委托類型的變量。
接著將這個變量初始化為與該委托有相同簽名的函數(shù)引用。
之后,就可以使用委托變量調(diào)用這個函數(shù),就像 該變量是一個函數(shù)一樣。
委托_委托 -委托本質(zhì)
在C#中使用delegate關(guān)鍵字定義委托,然后使用我們熟悉的函數(shù)調(diào)用的語法來調(diào)用委托,如上述例子中的cb(“skynet”,23)。在這簡單的表象背后,.NET編譯器為我們做了什么呢?
可以知道定義CallBack委托時,編譯器為我們做了如下工作,實際上定義任何委托編譯器都會做如下工作:
聲明一個類,對應(yīng)上圖中的.class nested public auto ansi sealed。
該類擴展自System.MulticastDelegate,對應(yīng)上圖中的extends [mscorlib]System.MulticastDelegate。
該類包含一個構(gòu)造器,對應(yīng)上圖中的.ctor: void(object ,native int)。
該類包含三個方法,分別是BeginInvoke、EndInvoke、Invoke。
委托_委托 -委托類
當(dāng)我們用delegate關(guān)鍵字聲明委托時,編譯器自動為我們生成類。類的名字即為委托變量名,訪問類型為定義的委托訪問類型。如上例中,public delegate void CallBack(string name, int number);定義的委托對應(yīng)的類為CallBack,訪問類型為public,該類繼承自[mscorlib]System.MulticastDelegate。如果我們定義委托的訪問類型為private或者protected,則對應(yīng)的委托類的訪問類型為private或者protected。但是任何委托都繼承自[mscorlib]System.MulticastDelegate。
什么是委托
首先要知道什么是委托,用最通俗易懂的話來講,你就可以把委托看成是用來執(zhí)行方法(函數(shù))的一個東西。
如何使用委托
在使用委托的時候,你可以像對待一個類一樣對待它。即先聲明,再實例化。只是有點不同,類在實例化之后叫對象或?qū)嵗?,但委托在實例化后仍叫委托?/p>
愛華網(wǎng)本文地址 » http://www.klfzs.com/a/8103280103/40741.html
愛華網(wǎng)



