關於委託的理解

2021-04-19 22:10:01 字數 695 閱讀 6033

學習c#有一段時間了,對委託一直不是很理解,試著說一下。

委託是對方法的傳遞呼叫,即把方法像引數一樣傳遞。

我們知道,方法具有引數。這個引數可以是基本資料型別,如int,double等,也可以是引用型別(即類),包括系統自帶的和自定義的。例如,我們有個方法add,它的引數是兩個int型別整數。

int add(int x,int y)

我們在呼叫add方法時,在給它傳遞實參時只需要是兩個int型別的整數即可,即可以是add(1,2),也可以是add(3,5),這是顯而易見的。

同樣,對於乙個方法來說,它具有兩個限制:返回型別和引數。當把方法作為引數傳遞時,這個方法以委託的形式出現。在具體呼叫這個把方法作為引數的函式時,它的實參方法(委託的例項)即是滿足了那兩個限制的方法,即與形參具有相同的返回型別和引數。說白了,建立函式用委託做形式引數,呼叫函式時用委託的例項作為實參。

例如:public delegate int delcompute();//定義委託

class  compute

private int compute(delcompute com) //將委託com作為引數傳遞

}class program

static int subtract(int a,int b)

static void main(stirng args)

}

委託的理解

可以把委託看作乙個通用的方法名,該名稱可以在不同的時刻指向不同的方法,並且可以通過該委託執行這些方法。例子 using system namespace delegate test public int mulfun int a,int b class test b 改變委託物件所指向的方法 dgt...

什麼是委託,理解委託

我自己的比較抽象粗淺的認識是 乙個類想執行乙個方法,但它本身沒有這個方法,這個方法在另乙個類中,於是它 委託 那個類來幫它執行 接觸c 是在兩年前了,今天才算對這個概念有個粗淺的認識,慚愧啊 mailmanager類想執行fax類的faxmsg方法,但是fax類不讓執行,所以mailmanager就...

對委託的理解

在公司看了一上午的委託和事件 其實也沒有那麼久了,2個小時而已 終於明白了一些,看大家都沒有回帖,可能是因為我沒有設定加分,我的分太少了,剛來csdn。委託 我對委託的理解是這樣的 實現定乙個函式規範 簡單點說就是定義乙個函式的格式 如 public int test int a 委託裡是這樣寫的p...