C 基礎學習之委託

2022-02-23 10:25:37 字數 965 閱讀 7178

委託(delegate)

委託屬於引用型別,用於封裝方法(函式)的引用。它類似於c++中的函式指標,但有所不同,委託是完全物件導向的,是型別安全和可靠的;另外,c++指標僅指向成員函式,而委託同時封裝了物件例項和方法。

使用委託包含幾個步驟:委託宣告、委託例項化和委託呼叫

1、委託宣告

委託宣告用於定義乙個從system.delegate類派生的類,其格式為:

屬性集修飾符 delegate 返回值型別

識別符號(形參列表);

其中,修飾符可為public、protected、internal、private和new

2、委託例項化

委託例項化用於建立委託例項化,與類例項建立的語法相同,委託例項可以封裝多個,

方法,該方法的集合稱為呼叫列表,委託使用「+」,「+=」,「-」,「-=」運算子向呼叫列表中增加或移除方法。

3、委託呼叫例子

using

system;

using

system.collections.generic;

using

system.linq;

using

system.text;

namespace

delegate

!the time is  now

", s, datetime.now);

}public

static

void

goodbyetime(

string

s)!the time is  now

", s, datetime.now);

}public

void

sayhello(

string

s)!the time is  now

", s, datetime.now);}}

class

program

}

C 基礎之委託

委託常常和事件在一起使用,可以理解委託是方法的容器,事件則是委託的另一種表現形式。委託和事件雖然寫得還比較多,不過也只是用的熟練而已,趁週末沒課好好鞏固下基礎,一點一點積累吧。1.乙個簡單的小例子 class program class people public void eatpear stri...

C 基礎之委託

因為委託也是面試常常問道的問題,分享一下我的理解。為什麼使用委託。delegate void mydelegate 定義委託 mydelegate md 宣告委託 md new mydelegate obj.method 委託的例項化 mymethod d 把引數傳遞給方法 委託把方法當做引數傳到另...

c 之基礎委託非同步

大家知道委託就相當於c 裡面的函式指標,相信大家都很很了解,看看如下簡單 來回想一下委託 public delegate void ad xu xus new xu ad b new ad xus.add b xus.ex b console.readline class xupublic void...