委託是乙個類,它定義了方法的型別,使得可以將方法當作另乙個方法的引數來進行傳遞。事件是一種特殊的委託。
一丶委託的宣告
(1). delegate
delegate我們常用到的一種宣告
delegate至少0個引數,至多32個引數,可以無返回值,也可以指定返回值型別。
例:public delegate int methodtdelegate(int x, int y);表示有兩個引數,並返回int型。
(2). action
action是無返回值的泛型委託。
action 表示無參,無返回值的委託
action表示有傳入引數int,string無返回值的委託
action表示有傳入引數int,string,bool無返回值的委託
action表示有傳入4個int型引數,無返回值的委託
action至少0個引數,至多16個引數,無返回值。
例:
publicvoid test(actionaction,t p)
(3). func
func是有返回值的泛型委託
func表示無參,返回值為int的委託
func表示傳入引數為object, string 返回值為int的委託
func表示傳入引數為object, string 返回值為int的委託
func表示傳入引數為t1,t2,,t3(泛型)返回值為int的委託
func至少0個引數,至多16個引數,根據返回值泛型返回。必須有返回值,不可void
例:
publicint test(funcint>func,t1 a,t2 b)
(4) .predicate
predicate 是返回bool型的泛型委託
predicate表示傳入引數為int 返回bool的委託
predicate有且只有乙個引數,返回值固定為bool
例:public delegate bool predicate(t obj)
二丶如何使用委託
2.1. labmda表示式
testdelegate d2= (string name) => !", name); };
d2("
terry
");
2.2.匿名方法
delegatevoid testdelegate(string
myname);
testdelegate d2 = delegate(string
name)!"
, name);
};d2(「test」);
2.3.委託的清空
(1).在類中申明清空委託方法,依次迴圈去除委託引用。
publicmethoddelegate ondelegate;
public
void
cleardelegate()
}
(2).如果在類中沒有申明清空委託的方法,我們可以利用getinvocationlist查詢出委託引用,然後進行去除。
publicmethoddelegate ondelegate;
static
void main(string
args)
}}
委託的特點
委託類似於 c++ 函式指標,但它們是型別安全的。
委託允許將方法作為引數進行傳遞。
委託可用於定義**方法。
委託可以鏈結在一起;例如,可以對乙個事件呼叫多個方法。
方法不必與委託簽名完全匹配。
總結:
delegate至少0個引數,至多32個引數,可以無返回值,也可以指定返回值型別
func可以接受0個至16個傳入引數,必須具有返回值
action可以接受0個至16個傳入引數,無返回值
predicate只能接受乙個傳入引數,返回值為bool型別
Itween筆記 第二節
itween的camerafade相關api使用.1.camerafadeadd 建立乙個新的物件,新增乙個guitexture元件,並且給guitexture 的 texture 和 color 屬性賦預設的值.camerafadeadd texture2d texture 建立乙個新的物件,新增...
第二節課筆記
1.識別符號 宣告格式 型別 識別符號 賦值格式 識別符號 字面量 兩種格式的簡寫 型別 識別符號 字面量 2.操作符和表示式 表示式 通過識別符號,字面量和操作符按照一定的順序拼接然後得到的乙個具有固定結果的式子,叫做表示式 操作符 具有一定邏輯意義的符號。操作符型別 算數運算子 位運算子 關係運...
滲透筆記第二節(hack tools)
通過幾天的學習,基本掌握了幾種常用的檢測工具,例如 檢測 注入漏洞的啊d,hdsi,nbsi等工具,這類工具都有乙個共同的特點,功能比較全面,除了注入以及資料庫表名和字段猜解等功能,還融合了注入後台位址掃瞄,旁註,幾種上傳漏洞以及db owner列目錄等功能。漏洞掃瞄類,我經常用到的例如xscan,...