泛型委托Action与ActionT
生活随笔
收集整理的這篇文章主要介紹了
泛型委托Action与ActionT
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
以前都是自己寫委托,其實系統(tǒng)內(nèi)部給我們系統(tǒng)了委托的。
Action ——委托的非泛型版本就是一個無參數(shù)無返回值的委托。
Action<T>——委托的泛型版本是一個無返回值,但是參數(shù)個數(shù)及類型可以改變的委托。?
Func<T>——委托只有泛型版本的,接受參數(shù)個數(shù)可以是若干個,也可以沒有參數(shù),但是一定要有返回值
class Program{//定義委托//public delegate void adddelegate();static void Main(string[] args){//【1】使用自己定義的委托//adddelegate my = add;//if (my!=null)//{// my();//}//【2】使用系統(tǒng)委托Action my = add;if (my!=null){my.Invoke();}Console.ReadKey();}static void add(){Console.WriteLine("你好世界");}}?
泛型委托
數(shù)據(jù)類型可以改變的委托
理解:比如你要寫一個有參數(shù)string類型的委托那你就需要定義一個string參數(shù)類型的委托,我這個類型又要變成int,你還要寫個int參數(shù)的委托那是bool的還要寫個bool的委托
這個樣很麻煩。泛型委托因此而生。
class Program{//定義泛型委托public delegate void PrintDelegate<T>(T str);static void Main(string[] args){//根據(jù)泛型委托來接收方法PrintDelegate<int> my2 = add2;//給泛型委托傳遞參數(shù)my2.Invoke(365);PrintDelegate<string> my = add;my("?"); //使用系統(tǒng)Action<>泛型委托
Action <string> my3=add;
//使用多個參數(shù)的泛型Action委托
Action<int, string> my4 = add2;
my4.Invoke(365,"中國");
my3("??");Console.ReadKey();}static void add(string a){Console.WriteLine("你好世界"+a);}static void add2(int a){Console.WriteLine("你好世界" + a);}}?
轉(zhuǎn)載于:https://www.cnblogs.com/xiaowie/p/9391048.html
總結(jié)
以上是生活随笔為你收集整理的泛型委托Action与ActionT的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: BZOJ3527: [Zjoi2014]
- 下一篇: 小奇赏花