Delegate是什么?
Delegate是C#中的一種類型,它實際上是一個能夠持有對某個方法的引用的類。
與其它的類不同,delegate類能夠擁有一個簽名(signature),并且它只能持有與它的簽名相匹配的方法的引用。
上面的定義解釋了一個delegate的聲明定義了一個reference type, 而這個reference type是用來將一個方法利用一個指定的形式壓縮起來。一個delegate的實例壓縮一個靜態或者一個實例方法。Delegates和C++中的功能指針很相似。然而,不同的是,delegate是安全的,并且是Type-safe。
C#中的委托
1. 委托類似與 C或C++中的函數指針,但委托是 面向對象的,并且是類型安全的
2. 委托 就相對與 一類方法 (即方法類,或者方法接口)
而這一類方法都具有相同的 修飾符、形參以及 返回值類型
委托,既是方法:
聲明委托的方式如下:在修飾符后加上 delegate ['d?l?ɡ?t]關鍵字
從格式上看,它與方法的聲明極為相似,就是多了個 delegate關鍵字而已
表示聲明了一類,修飾符為public、一個string類型形參的、沒有返回值的方法
但委托不是普通的方法,因為它也是類,
所以委托只能聲明,而不能定義,如不能這樣寫:
實例化委托,調用委托: