當(dāng)前位置:
首頁 >
简单的Delegate(委托)例子
發(fā)布時(shí)間:2023/12/1
37
豆豆
生活随笔
收集整理的這篇文章主要介紹了
简单的Delegate(委托)例子
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
今天學(xué)習(xí)一下好久都不愿意碰的Delegate,雖然不是很明白,還是寫了一個(gè)小例子(參考園子里的朋友們的),希望加深一下印象.
朋友們說它類似于C++的函數(shù)指針,指向一個(gè)函數(shù),運(yùn)行的時(shí)候可以調(diào)用這個(gè)函數(shù).
步驟:
?? 1. 聲明一個(gè)delegate對(duì)象。
?? 2. 實(shí)現(xiàn)和delegate具有相同參數(shù)和返回值的函數(shù)實(shí)現(xiàn)(可以是靜態(tài)和非靜態(tài)的)。
?? 3. 產(chǎn)生一個(gè)delegate對(duì)象的時(shí)候,把你剛剛實(shí)現(xiàn)的函數(shù)作為參數(shù)傳給他的構(gòu)造函數(shù)。
代碼如下:
Default.aspx.cs中:
public partial class _Default : System.Web.UI.Page
{
//第一步,聲明一個(gè)delegate對(duì)象
??? public delegate void Mydelegate(string mydelegate);
??? protected void Page_Load(object sender, EventArgs e)
??? {
??????? //第三步 產(chǎn)生一個(gè)delegate對(duì)象的時(shí)候,把你剛剛實(shí)現(xiàn)的函數(shù)(方法)作為參數(shù)傳給他的構(gòu)造函數(shù)。
??????? Mydelegate hello = new Mydelegate(Hello);
??????? hello("hello");
??????? Mydelegate statichello = new Mydelegate(staticHello);
??????? statichello("beijing");
??? }
//第二步 實(shí)現(xiàn)和delegate具有相同參數(shù)和返回值的函數(shù)實(shí)現(xiàn)(非靜態(tài)的)
//這里的參數(shù)是mydelegate,返回值是void
??
??? public void Hello(string mydelegate)
??? {
??????? Response.Write(mydelegate);
??? }
//第二步 實(shí)現(xiàn)和delegate具有相同參數(shù)和返回值的函數(shù)實(shí)現(xiàn)(靜態(tài)的)
//這里的參數(shù)是mydelegate,返回值是void
??? public static void staticHello(string mydelegate)
??? {
??????? HttpContext.Current.Response.Write(mydelegate);
??? }
}
輸出結(jié)果:hellobeijing
參考內(nèi)容:http://www.cnblogs.com/cuihongyu3503319/archive/2007/04/29/732376.html
朋友們說它類似于C++的函數(shù)指針,指向一個(gè)函數(shù),運(yùn)行的時(shí)候可以調(diào)用這個(gè)函數(shù).
步驟:
?? 1. 聲明一個(gè)delegate對(duì)象。
?? 2. 實(shí)現(xiàn)和delegate具有相同參數(shù)和返回值的函數(shù)實(shí)現(xiàn)(可以是靜態(tài)和非靜態(tài)的)。
?? 3. 產(chǎn)生一個(gè)delegate對(duì)象的時(shí)候,把你剛剛實(shí)現(xiàn)的函數(shù)作為參數(shù)傳給他的構(gòu)造函數(shù)。
代碼如下:
Default.aspx.cs中:
public partial class _Default : System.Web.UI.Page
{
//第一步,聲明一個(gè)delegate對(duì)象
??? public delegate void Mydelegate(string mydelegate);
??? protected void Page_Load(object sender, EventArgs e)
??? {
??????? //第三步 產(chǎn)生一個(gè)delegate對(duì)象的時(shí)候,把你剛剛實(shí)現(xiàn)的函數(shù)(方法)作為參數(shù)傳給他的構(gòu)造函數(shù)。
??????? Mydelegate hello = new Mydelegate(Hello);
??????? hello("hello");
??????? Mydelegate statichello = new Mydelegate(staticHello);
??????? statichello("beijing");
??? }
//第二步 實(shí)現(xiàn)和delegate具有相同參數(shù)和返回值的函數(shù)實(shí)現(xiàn)(非靜態(tài)的)
//這里的參數(shù)是mydelegate,返回值是void
??
??? public void Hello(string mydelegate)
??? {
??????? Response.Write(mydelegate);
??? }
//第二步 實(shí)現(xiàn)和delegate具有相同參數(shù)和返回值的函數(shù)實(shí)現(xiàn)(靜態(tài)的)
//這里的參數(shù)是mydelegate,返回值是void
??? public static void staticHello(string mydelegate)
??? {
??????? HttpContext.Current.Response.Write(mydelegate);
??? }
}
輸出結(jié)果:hellobeijing
參考內(nèi)容:http://www.cnblogs.com/cuihongyu3503319/archive/2007/04/29/732376.html
轉(zhuǎn)載于:https://www.cnblogs.com/fanwenxuan/archive/2007/09/28/908675.html
總結(jié)
以上是生活随笔為你收集整理的简单的Delegate(委托)例子的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 海信65E3D–J和海信VIDAA 65
- 下一篇: 【第二届】Erlang Fans交流会(