委託,函數回調

來源:互聯網
上載者:User

 

今天回顧了一下委託,又有點東西要寫出來,哈哈,說一下這東西的由來,其實程式就是虛擬現實世界,程式中的東西,一般都能在現實中找到影子

 

首先,委託的要義是通知,和響應(所以觀察者模式這個應用較多)

在現實中的流程是這樣的

 

0.通知人,和被通知人互相約定,用什麼標準通知(如電話)

1.被通知人,要告訴通知人,用標準的什麼執行個體通知(如電話號碼+手機組成)

2.通知人和被通知人各自幹自己的事,互不影響。

3。通知人幹了一件事,影響了被通知人,於是他拿起電話,打了一個電話號碼,然後告訴被通知人,我幹了什麼事,怎麼乾的,然後被通知人又告訴通知人一些事。

4。被通知人,根據告知,處理問題

然後把他翻譯成.net的委託

 

public partial class Default3 : System.Web.UI.Page
{
    a a1;
    b b1;
    /// <summary>
    /// 情境
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void Page_Load(object sender, EventArgs e)
    {
        a1 = new a();
        b1 = new b();
        a1.連絡人電話 = new 電話聯絡(b1.這是我的電話號碼用這個通知我上線);//告訴通知人我的電話(這裡就是函數指標傳遞)

    }
    /// <summary>
    /// 發生動作
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void 開始玩魔獸_Click(object sender, EventArgs e)
    {
        a1.打電話();
    }
}
public delegate string 電話聯絡(string 聯絡內容);
/// <summary>
/// 通知人
/// </summary>
public class a
{
    public 電話聯絡 連絡人電話;

    public void 打電話()
    {
        if (連絡人電話 != null)
        {
            string R= 連絡人電話("我上線了,在2伺服器");
        }
    }
}
/// <summary>
/// 被通知人
/// </summary>
public class b
{
    public string 這是我的電話號碼用這個通知我上線(string 聯絡內容)
    {
        #region 開機,上線,處理過程

        #endregion
        return "好了,我上線了,在也2伺服器";
    }
}

 

註:委託(函數指標只是實現一種辦法,如果沒有函數指標,比如js,難道就不實現了嗎,事實上,js 的回調還是很多的,實現方式 一般開始傳方法名,然後執行方法,其實原理還是一樣的,就是傳不了函數的指標了,而是傳函數名,具體實現下次再寫)

 

 

還有,如果自己的類裡有委託的話,基本上都是通知人

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.