系統內建的委託
使用委託:方法的簽名要和委託一致。
1.system.func 代表有返回型別的委託
|--public delegate tresult func();
|--public delegate tresult func(t tag);
注:輸入泛型引數-in最多16個,輸出泛型桉樹-out只有乙個
2.system.action 代表 ,無返回值的委託 public delegate void delegate();
3.system.predicate代表返回bool型別的委託,用作執行表示式
public delegate bool predicate(t obj);
4.system.comparison代表返回int型別的委託 --用作比較兩個引數的大小
1.action無返回值的委託
static void delegate_action()
); p) => );
plist.foreach(p => console.writeline(p.name));
}static void fe(person p)
2.func有返回值的委託
static void delegate_func()
);
plist.where(p => p.age > 30).tolist().foreach(c => console.writeline(c.age));
}
3.predicate 返回bool型別的委託,用作執行表示式。
static void delegate_predicate()
); 演變 匿名委託很多東西都可以神略掉 delegate省略()裡面引數列表,如果沒有 括號也不可省略,=>
plist.findall((person p) => ); // => goes to 分隔符
演變->lambda表示式 括號、return 都去掉,只留乙個引數名字和方法體內容即可
plist.findall(p => p.age > 30); //p就是形參名了 編譯器根據findall來推理到plist集合中,那麼p就是person物件了
}
C 內建委託
三種內建委託 action 無返回值.func 尖括號最後乙個型別為返回值型別.必須要有返回值.predicate 返回型別為bool,必須有乙個引數,等價於func 注意,有返回值的委託中,如果有多個方法註冊在內,返回值是最後註冊的方法返回值,前面的同樣會執行,只不過返回值拿不到 using sy...
C 中常見的系統內建委託用法詳解
一般來說,c 在公共語言執行時 clr 環境中系統為我們內建了一些常用的委託,包括action類的委託 func類的委託 predicate委託 comparison l程式設計客棧t t 委託等等。以上這些委託的命名空間都是system,所屬程式集都是 mscorlib.dll,今天本文就來講一講...
C 內建 委託(1)
上篇文章簡單介紹了一下什麼是委託?但是每次都內定義乙個委託,感覺有些麻煩,所以微軟為了為人民服務,提出了內建委託,讓你直接使用就好。對於內建委託,最常用的主要有三個,action func predicate 對於內建,怎麼理解?其實就是少去了定義的過程。對於action 的出現是在.netfram...