C#中的委托和事件-拋磚引玉
最近在學習委托和事件,在書店里面看了好多書,但是都是迷迷的…… 今天在博客園里面看到了 張子陽 所寫的博客C#中的委托和事件:http://www.tracefact.net/CSharp-Programming/Delegates-and-Events-in-CSharp.aspx 看后對委托和事件有了一個新的認識,可以是沒有用到實際項目中去吧,感覺還是有點不知……
下面我起一個拋磚引玉作用讓這兩天在書中看到的,及看張子陽博客和寫的一個和他類似的程序……
感覺自己知道的太少了、對委托和事件、泛型、接口 這些語法理解太淺了、甚至都不理解!呵,學起來也比較困難,但又不能不去看、不去學、那樣都無法往下去學習其他的! 希望像我這樣的迷茫者可以多看一下博客園的老人們寫的經典博客,多看看一書。
可以看一下張子陽的博客,很不錯、初學者應該去看:http://www.tracefact.net/CSharp-Programming/Delegates-and-Events-in-CSharp.aspx
下面我起一個拋磚引玉作用讓這兩天在書中看到的,及看張子陽博客和寫的一個和他類似的程序……
當第一次聽到委托、事件時感覺比較抽象、很好奇,當看到老師在課堂上利用委托和事件實現兩個窗體調用時、感覺委托太神奇了,呵、不廢話了……
委托和事件在做程序是很常見到的,對于像我這樣的接觸C#不是很長的光會去用,但不知道他里面的含義及本質、想理解他還是有一點困難的,下面有兩個例子大家可以看一下
public delegate void Mydelegate(string name); //定義一個委托 class Program { public static void show(string name) { Console.WriteLine(name); } static void Main(string[] args) { Mydelegate My = show; //利用遇他相對應的方法來實例化委托 My("呵呵"); //調用委托 Console.ReadKey(); } }
呵呵,這個小例子是定義一個委托,通過與他相對應的方法來實例化委托,然后調用委托,實現方法。
下面一個例子是我看過張子陽博客后寫的,本人英語不是太好、可能里面定義會有些……
using System; using System.Collections.Generic; using System.Text; namespace ConsoleApplication7 { //我們來模擬一個打字智能機,他有三部分構成:在鍵盤上面輸入文字、輸出在顯示器、 語音提示;如果要實現這三種操作必須需要三種不同的硬件,所以 //鍵盤只能實現打字、顯示器實現輸出,語單提示設備實現讀出文字。 所以我們應該讓他們看成三種不同的對象,來實現程序! //定義三個類,Smart(智能機類),Typing(打字方法),show(顯示方法), MakyVoice(語音提示方法) //鍵盤打字 public class Smart { public delegate void SmartDelegate(char T);//定義一個委托 public event SmartDelegate SmarEvent;//定義實現這個委托的事件 public char T;//相當于你每一次打的單個文字 //定用一個字符串相當于我們從鍵盤上打出來的文字…… public string Text = "好好學習,天天向上"; public void Typing() { foreach (char t in Text) { T = t; if (SmarEvent != null) { SmarEvent(T); } } } } //顯示輸出 public class Display { public void show(char T) { Console.WriteLine(T); } } //語言提示 public class Voice { public void MakyVoice(char T) { Console.WriteLine("您輸出了:" + T); } } class Program { static void Main(string[] args) { Smart S = new Smart(); Display D = new Display(); Voice V = new Voice(); S.SmarEvent+=new Smart.SmartDelegate(D.show); S.SmarEvent+=new Smart.SmartDelegate(V.MakyVoice); S.Typing(); Console.ReadKey(); } } }
可以看一下張子陽的博客,很不錯、初學者應該去看:http://www.tracefact.net/CSharp-Programming/Delegates-and-Events-in-CSharp.aspx
全站熱搜