關於C#中委託的一些理解與模仿

來源:互聯網
上載者:User

標籤:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

///委託是對方法的類型的抽象
///方法的類型是由傳回值、形參個數及類型定義的
///所以委託也通過傳回值、形參個數及類型定義了不同類型的方法
///因為委託是一種類型,也就是類,所以在使用時需要執行個體化。
///委託類型的執行個體對象的應用很靈活,跟普通類的執行個體對象使用方式相同
///可以作為另外一個方法的空殼使用,也可以作為其他方法的參數使用
///之所以稱之為方法的空殼,是因為該執行個體對象不具有真實的商務邏輯能力,
///僅僅是中間的一個經手人而已。如果老師讓小明去打水,小明是瘸子,走動不便,但小明
///有個好朋友小紅,小明就讓小紅去打水,最終水由小紅打回來了。
///這裡,相當於小明就是委託。
namespace delegate_test
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

/// <summary>
/// 定義了一種方法的類型,有int傳回值
/// 有兩個形參,都為int
/// </summary>
/// <param name="x"></param>
/// <param name="y"></param>
/// <returns></returns>
public delegate int culculateDelegate(int x, int y);

private void Form1_Load(object sender, EventArgs e)
{
culculateDelegate cd = Added;

MessageBox.Show(dele(cd, 3, 5).ToString());
}

/// <summary>
/// 這個方法滿足委託所定義的方法的類型
/// 他是這樣一種類型的方法,有一個int的傳回值,有兩個形參,都是int型的
/// 這裡,方法的類型,由傳回值、形參個數和形參類型共同決定。
/// </summary>
/// <param name="a"></param>
/// <param name="b"></param>
/// <returns></returns>
private int Added(int a, int b)
{
return a + b;
}

/// <summary>
/// 該方法有三個形參,類型分別為1個委託型(該委託型方法的類型是2個int形參,一個int傳回值),2個int
/// </summary>
/// <param name="cd"></param>
/// <param name="x"></param>
/// <param name="y"></param>
/// <returns></returns>
private int dele(culculateDelegate cd, int x, int y)
{
return cd(x, y);
}

}
}

關於C#中委託的一些理解與模仿

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.