委託(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...