C 委託學習

2022-02-12 21:23:23 字數 1166 閱讀 4358

在學習c#中的委託和事件過程中,我讀了許多文章來理解他們二者究竟是怎麼一回事,以及如何使用他們,現在我將整個的理解過程陳述以下,我學到的每一方面,恐怕也是你們需要掌握的 :-)。

什麼是委託?

委託和事件這兩個概念是完全配合的。委託僅僅是函式指標,那就是說,它能夠引用函式,通過傳遞位址的機制完成。委託是乙個類,當你對它例項化時,要提供乙個引用函式,將其作為它建構函式的引數。

每乙個委託都有自己的簽名,例如:delegate int somedelegate(string s, bool b);是乙個委託申明,在這裡,提及的簽名,就是說somedelegate 這個委託 有 string 和 bool 型別的形參,返回乙個int 型別。

上面提及的:當你對委託例項化時,要提供乙個引用函式,將其作為它建構函式的引數。這裡要注意了:被引用的這個函式必須和委託有相同的簽名。

看下面的函式:

private int somefunction(string str, bool bln)

你可以把這個函式傳給somedelegate的建構函式,因為他們有相似的簽名(in other words,他們都有相同的形參型別和個數,並且返回相同的資料型別)。

somedelegate sd = new somedelegate(somefunction);

sd 引用了 somefunction,也就是說,somefunction已被sd所登記註冊,如果你呼叫 sd,somefunction 這個函式也會被呼叫,記住:我所說 somefunction的含義,後面,我們會用到它。

下面是**舉例

using system;

using system.collections.generic;

using system.linq;

using system.text;

namespace 委託學習

private static void chinesegreeting(string name)

//注意此方法,它接受乙個greetingdelegate型別的方法作為引數

private static void greetpeople(string name, greetingdelegate makegreeting)

static void main(string args)

}}

C 委託學習

委託學習,委託就是一種資料型別,就是把乙個方法當引數乙個使用,這裡先寫乙個最簡單的委託練習!新建乙個空專案,再建乙個控制台程式 然後再建乙個類庫,在類庫中新建乙個沒有返回型別的委託 就是新建乙個類,委託其實就是乙個類,寫法如下 namespace classlibrary1 然後在在類庫中再建乙個類...

學習C 委託總結

學習c 委託總結 學過c了,對委託就比較有概念性的認識,c 中的委託其實類似於c中的函式指標,c中我們可以把函式進行指標化,但在c 中不允許這麼操作,所以c 中委託是安全的,它並不是直接對記憶體進行指向,而是編成中介軟體 所以這一點c 比較好,我們應該把委託看成乙個新的概念,類似於類,只不過是個特殊...

C 「委託」學習筆記

using system using system.collections.generic using system.linq using system.text namespace delegatetest console.writeline sh3 jiang 組合委託,此時委託就能夠依次執行多...