国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

asp.net事件委托易理解實例

2019-11-17 01:35:58
字體:
來源:轉載
供稿:網友

asp.net事件委托易理解實例

比如說一個公司(場景),你是老板,手下有兩個員工,小張和小王。

你命令小王,如果小張玩游戲,則小王扣去小張500元錢。這就是現實中的委托。實際上,在寫程序中,程序員就是老板,小張和小王就是兩個對象。小張玩游戲是一個方法,小張還有一個游戲事件,他玩游戲激發這個事件。而小王就是事件處理對象,他負責把小張的錢扣除500。所以,委托有如下幾個要素:1 激發事件的對象--就是小張2 處理對象事件的對象--就是小王3 定義委托,就是你讓小王監視小張。如果這三個要素都滿足的話,則你就寫出了一個完整事件的處理。下面有個例子:在vs.net2003 C#控制臺應用程序編輯運行成功:using System;namespace CSharpConsole{  public class 場景  {    [STAThread]    public static void Main(string[] args)    {      Console.WriteLine("場景開始了....");      // 生成小王      小王 w = new 小王();      // 生成小賬      小張 z = new 小張();

     // 指定監視

      z.PlayGame += new PlayGameHandler(w.扣錢);      // 開始玩游戲      z.玩游戲();      console.writeline("場景結束...");      Console.ReadLine();    }  }

  // 負責扣錢的人  public class 小王  {    public 小王()    {      Console.WriteLine("生成小王...");    }    public void 扣錢(object sender,EventArgs e)    {

      Console.WriteLine("小王:好小子,上班時間膽敢玩游戲...");

      Console.WriteLine("小王:看看你小子有多少錢...");      小張 f = (小張)sender;      Console.WriteLine("小張的錢: " + f.錢.ToString());      Console.WriteLine("開始扣錢......");      System.Threading.Thread.Sleep(500);      f.錢 = f.錢 - 500;      Console.WriteLine("扣完了....現在小張還剩下:" + f.錢.ToString());    }  }  // 如果玩游戲,則引發事件  public class 小張  {    // 先定義一個事件,這個事件表示“小張”在玩游戲。    public event PlayGameHandler PlayGame;    // 保存小張錢的變量    PRivate int m_Money;    public 小張()    {      Console.WriteLine("生成小張....");      m_Money = 10000; // 構造函數,初始化小張的錢。    }    public int 錢 // 此屬性可以操作小張的錢。    {      get      {        return m_Money;      }      set      {        m_Money = value;      }    }    public void 玩游戲()    {      Console.WriteLine("小張開始玩游戲了.....");      Console.WriteLine("小張:CS好玩,哈哈哈! 我玩.....");      System.Threading.Thread.Sleep(500);      System.EventArgs e = new EventArgs();      //OnPlayGame(e);      if(PlayGame != null)      {        PlayGame(this,e);      }    }    protected virtual void OnPlayGame(EventArgs e)    {      if(PlayGame != null)      {        PlayGame(this,e);      }    }  }  // 定義委托處理程序  public delegate void PlayGameHandler(object sender,System.EventArgs e);}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 陆良县| 临清市| 连南| 邮箱| 白玉县| 辽阳县| 河源市| 赣榆县| 股票| 永平县| 积石山| 安泽县| 廊坊市| 平凉市| 绥宁县| 武强县| 德化县| 馆陶县| 汝阳县| 西贡区| 兴文县| 博客| 奉节县| 富阳市| 襄城县| 光泽县| 南丹县| 福贡县| 天长市| 镇远县| 长乐市| 准格尔旗| 四川省| 英吉沙县| 龙胜| 凉城县| 石家庄市| 舒兰市| 福建省| 无锡市| 烟台市|