• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 輕松使用C++深入研究.NET委托與事件設計[1]

    發表于:2007-05-14來源:作者:點擊數: 標簽:深入研究C++.NET委托輕松
    簡介 類型 安全 機制的實現原來采用的是C風格的回調(callback)函數,而 .NET Framework引入了委托和事件來替代原來的方式;它們被廣泛地使用。我們在這里嘗試使用 標準 C++ 來實現與之類似的功能,這樣我們不但可以對這些概念有一個更好的認識,而且同時還能

      簡介

      類型安全機制的實現原來采用的是C風格的回調(callback)函數,而 .NET Framework引入了委托和事件來替代原來的方式;它們被廣泛地使用。我們在這里嘗試使用 標準 C++來實現與之類似的功能,這樣我們不但可以對這些概念有一個更好的認識,而且同時還能夠體驗C++的一些有趣的技術。

     
      美女啦啦隊招募中   縱情享受人生第一樂趣  
     新浪招商引資征代理商   上網實用手冊 
     
     
       C#中的委托與事件關鍵字

      首先我們來看一個簡單的C#程序(下面的代碼略有刪節)。執行程序的輸出結果如下顯示:

      SimpleDelegateFunction called from Ob1,

      string=Event fired!

      Event fired!(Ob1): 3:49:46 PM on

      Friday, May 10, 2002

      Event fired!(Ob1): 1056318417

      SimpleDelegateFunction called from Ob2,

      string=Event fired!

      Event fired!(Ob2): 3:49:46 PM on

      Friday, May 10, 2002

      Event fired!(Ob2): 1056318417

      所有這些都源于這樣一行代碼:dae.FirePrintString("Event fired!");

      在利用C++來實現這些功能時,我模仿了C#的語法并完全按照功能的要求進行開發。

      namespace DelegatesAndEvents

      {

      class DelegatesAndEvents

      {

      public delegate void PrintString(string s);

      public event PrintString MyPrintString;

      public void FirePrintString(string s)

      {

      if (MyPrintString != null)MyPrintString(s);

      }

      }

      class TestDelegatesAndEvents

      {

      [STAThread]

      static void Main(string[] args)

      {

      DelegatesAndEvents dae =new DelegatesAndEvents();

      MyDelegates d = new MyDelegates();

      d.Name = "Ob1";

      dae.MyPrintString +=new DelegatesAndEvents.PrintString(d.SimpleDelegateFunction);

      // ... more code similar to the

      // above few lines ...

      dae.FirePrintString("Event fired!");

      }

      }

      class MyDelegates

      {

      // ... "Name" property omitted...

      public void SimpleDelegateFunction(string s)

      {

      Console.WriteLine("SimpleDelegateFunction called from {0}, string={1}", m_name, s);

      }

      // ... more methods ...

      }

      }

    原文轉自:http://www.kjueaiud.com

    評論列表(網友評論僅供網友表達個人看法,并不表明本站同意其觀點或證實其描述)
    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>