日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

委托基应用实例

發(fā)布時(shí)間:2024/4/17 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 委托基应用实例 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

?一

提問:能不能把方法作為參數(shù)傳遞?????

也即使能能不能聲明一個(gè)存放方法的變量呢——委托

委托是一種數(shù)據(jù)類型,像類一樣(可以生命委托類型變量),委托是用來接受方法的,通過委托可以吧方法作為參數(shù)進(jìn)行傳遞

class Program{public delegate void AddDelegate(); //定義無返回值無參數(shù)的委托static void Main(string[] args){//【1】第一種方式//AddDelegate my = add;// my();//【2】第二種方式AddDelegate my = new AddDelegate(add);my.Invoke();Console.ReadKey();//你定義的委托沒有參數(shù)沒有返回值,方法也是要沒有參數(shù)沒有返回值的//在使用委托的時(shí)候 通過委托變量來調(diào)用 可以把Invoke方法省略掉。 }public static void add(){Console.WriteLine("恭喜你");}}

?

?

二?

?需求:假設(shè)一件事情在前面和后面要做的事情比較固定,(這里假設(shè)輸出“==========”),但是中間要做的事情經(jīng)常發(fā)生改變,(比如

1.要輸出系統(tǒng)當(dāng)前時(shí)間到控制臺(tái),2.要輸出系統(tǒng)當(dāng)前是星期幾3.要吧系統(tǒng)時(shí)間寫入到文本文件等)。

class Class1{public void Print(PrintDelegate a){Console.WriteLine("==============");Console.WriteLine("==============");//中間的事情經(jīng)常變化的,需要用委托來傳遞過來一個(gè)方法//判斷委托是否有方法傳遞過來if (a!=null){a.Invoke();}Console.WriteLine("==============");Console.WriteLine("==============");} 在Programe中調(diào)用
     static void Main(string[] args){Class1 my = new Class1(); //實(shí)例化這個(gè)類my.Print(printday); //調(diào)用print方法,把你需要顯示的內(nèi)容的方法 傳遞過來 Console.ReadKey();}//定義一個(gè)顯示當(dāng)前系統(tǒng)時(shí)間的方法public static void printsystem(){Console.WriteLine(DateTime.Now);}//定義一個(gè)顯示今天是星期幾的方法public static void printday(){Console.WriteLine(DateTime.Now.DayOfWeek);}

從上例可以看出委托一般是在一個(gè)方法中間“挖個(gè)坑” 這個(gè)坑用來執(zhí)行另一個(gè)方法,而這個(gè)方法是動(dòng)態(tài)的,可以根據(jù)需要調(diào)用不同的方法到里面。

?

  需求:對(duì)字符串的處理經(jīng)常需要發(fā)生變化,比如在字符串兩端添加“=”或“+”號(hào)把字符串字符全部轉(zhuǎn)化成大寫。

public delegate string PrintDelegate(string str); //定義返回值string 參數(shù)string類型的委托class Class1{//定義方法返回值無,參數(shù)字符串?dāng)?shù)組,委托方法public void Getstring(string [] strs,PrintDelegate weit){//循環(huán)遍歷數(shù)組for (int i = 0; i < strs.Length; i++){//數(shù)組的每個(gè)下標(biāo)=委托方法返回的值strs[i] = weit(strs[i]);}}} class Program{static void Main(string[] args){//定義字符串?dāng)?shù)組string[] strs = {"zhangsan","lisi","wangwu" };//實(shí)例化Class1 my = new Class1();//調(diào)用方法 my.Getstring(strs, StrToupper);//循環(huán)輸出結(jié)果for (int i = 0; i <strs.Length; i++){Console.WriteLine(strs[i]);}Console.ReadKey();}//定義委托方法返回string類型參數(shù)string 要和委托一致static string set(string a){//把string字符串前后都加上“====”return "===="+a + "====";}//定義委托方法把字符串轉(zhuǎn)換成大寫static string StrToupper(string str){return str.ToUpper();}}

?

轉(zhuǎn)載于:https://www.cnblogs.com/xiaowie/p/9390174.html

總結(jié)

以上是生活随笔為你收集整理的委托基应用实例的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。