委托声明----委托实例化-----委托调用
1、委托聲明。2、委托實(shí)例化。3、委托調(diào)用。
一、定義委托
定義委托的語法如下:
<訪問修飾符> delegate 返回類型 委托名();
定義委托和定義方法很相似,委托沒有具體的實(shí)現(xiàn)體,由關(guān)鍵字delegate聲明,直接以分號(hào)結(jié)束。委托能夠代表什么樣的方法,由它的返回值類型和參數(shù)列表決定。如下定義如下委托:
public delegate void MyDelegate(string name);
那么使用MyDelegate委托代表的只可以是沒有返回值,參數(shù)為一個(gè)字符串的方法。
二、實(shí)例化委托
定義了委托之后,如何使用委托代表方法執(zhí)行呢?首先要實(shí)例化委托。實(shí)例化委托就是將其指向某個(gè)方法,即調(diào)用委托的構(gòu)造函數(shù),并將相關(guān)聯(lián)的方法作為參數(shù)傳遞。
如:如一個(gè)方法
????????? private int Add(int num1,int num2)
????????? {
????????????? return(num1+num2);
????????? }
委托聲明了以后,就可以象類一樣進(jìn)行實(shí)例化,實(shí)例化時(shí)把要引用的方法(如:Add)做為參數(shù),這樣委托和方法就關(guān)聯(lián)了起來,就可以用委托來引用方法了。
委托和所引用的方法必須保持一致:
1、參數(shù)個(gè)數(shù)、類型、順序必須完全一致。
2、返回值必須一致。
3、傳入的方法中不能帶參數(shù),只寫方法名。
三、調(diào)用委托
要調(diào)用委托的方法用委托的對(duì)象加參數(shù),如果參數(shù)為空,也要加小括號(hào)。
為方法創(chuàng)建一個(gè)委托,然后立即通過這個(gè)委托調(diào)用該方法并沒有太大意義,因?yàn)橹苯诱{(diào)用方法更簡(jiǎn)單。動(dòng)態(tài)調(diào)用方法時(shí),委托才真正顯示出它的效用。
using System;
delegate int Operand(int a, int b); //第一步:委托聲明
class Class1
{
? static void Main(string[]args)
? {
???? Class1 c1 = new Class1();
???? Operand ope = new Operand(c1.Add);
???? //委托實(shí)例化,注意參數(shù)是要使用的參數(shù)名,且不帶括號(hào)
???? Console.WriteLine(ope(10, 20)); //委托調(diào)用,調(diào)用委托的方法用
委托的對(duì)象加參數(shù)
???? Console.ReadLine();
? }
? //定義一個(gè)方法,求兩個(gè)加數(shù)的和
private int Add(int num1, int num2)
? {
???? return (num1 + num2);
? }
}
轉(zhuǎn)載于:https://www.cnblogs.com/qintianqi/archive/2011/04/04/2005316.html
總結(jié)
以上是生活随笔為你收集整理的委托声明----委托实例化-----委托调用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: firedebug调试Jquery
- 下一篇: dc概论之IO约束