<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆 - 78  文章 - 25  trackbacks - 0
    <2009年10月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    常用鏈接

    留言簿

    隨筆分類(75)

    隨筆檔案(78)

    相冊

    實用Links

    我的Links

    搜索

    •  

    積分與排名

    • 積分 - 114078
    • 排名 - 516

    最新評論

    閱讀排行榜

    評論排行榜

    委托是一種動態(tài)調(diào)用函數(shù)的方式,通過委托可以將一些相同類型的函數(shù)串聯(lián)起來依次執(zhí)行。委托是函數(shù)回調(diào)和事件機(jī)制的基礎(chǔ)。
    委托,通過delegate關(guān)鍵字來聲明,通過new,+=,-=運算符為其分配函數(shù)。
    delegate void StrParaFunc(int no,string str);//定義一個委托,沒有返回值,依次包含兩個數(shù)據(jù)類型為int和string的參數(shù)

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;

    namespace useDelegate
    {
        
    class Program
        {
            
    /// <summary>
            /// 定義委托
            /// </summary>
            /// <param name="no"></param>
            /// <param name="str"></param>
            delegate void StrParaFunc(int no, string str);

            
    static void PrintString(int no, string str) {
                System.Console.WriteLine(
    "{0}:PrintString:{1}",no,str);
            }
            
    static void ShowString(int no, string str)
            {
                System.Console.WriteLine(
    "{0}:ShowString:{1}", no, str);
            }
            
    static void Main(string[] args)
            {
                
    //通過new初始化委托
                System.Console.WriteLine("**********************");
                StrParaFunc spfHandler1 
    = new StrParaFunc(PrintString);
                System.Console.WriteLine(
    "第一個委托對象,有1個引用函數(shù):");
                spfHandler1(
    1,"a string 1");//委托類型中有一個引用函數(shù),結(jié)果有1個    
                System.Console.WriteLine("**********************");
                
                spfHandler1 
    += ShowString;//通過+=增加引用函數(shù)
                System.Console.WriteLine("第一個委托對象,增加了一個引用函數(shù),共2個引用函數(shù):");
                spfHandler1(
    2,"a string 2");//委托中有兩個引用函數(shù),結(jié)果有2個       
                System.Console.WriteLine("**********************");

                spfHandler1 
    -= PrintString; //通過-=移除引用函數(shù)      
                System.Console.WriteLine("第一個委托對象,減少了一個引用函數(shù),剩1個引用函數(shù):");
                spfHandler1(
    3"a string 3"); //委托中有一個引用函數(shù),結(jié)果1個
                System.Console.WriteLine("**********************");

                
    //通過函數(shù)地址直接初始化委托
                StrParaFunc spfHandler2 = PrintString;
                spfHandler2(
    4"a string 4");
                System.Console.WriteLine(
    "**********************");
                System.Console.ReadLine();
            }
        }
    }

    運行結(jié)果:

    **********************
    第一個委托對象,有1個引用函數(shù):
    1:PrintString:a string 1
    **********************
    第一個委托對象,增加了一個引用函數(shù),共2個引用函數(shù):
    2:PrintString:a string 2
    2:ShowString:a string 2
    **********************
    第一個委托對象,減少了一個引用函數(shù),剩1個引用函數(shù):
    3:ShowString:a string 3
    **********************
    4:PrintString:a string 4
    **********************



    posted on 2009-10-26 15:59 期待明天 閱讀(266) 評論(0)  編輯  收藏 所屬分類: CSharp
    主站蜘蛛池模板: 中文字幕免费观看全部电影| 亚洲午夜久久影院| 亚洲日韩国产AV无码无码精品| 一级毛片免费视频| 亚洲综合一区二区国产精品| 男人的天堂网免费网站| 亚洲国产高清在线| 亚洲国产精品免费在线观看| 亚洲综合日韩中文字幕v在线| 88av免费观看| 亚洲国产日韩在线人成下载| 永久免费av无码网站韩国毛片| 亚洲制服丝袜一区二区三区| 国产精品免费观看久久| 亚洲国产系列一区二区三区| 日本免费人成黄页网观看视频 | 叮咚影视在线观看免费完整版| 亚洲乱码国产乱码精品精| 99久久国产精品免费一区二区| 国产亚洲综合久久系列| 午夜无码A级毛片免费视频| 中文字幕在线观看亚洲| 成人免费午夜无码视频| 亚洲日本一线产区和二线| 破了亲妺妺的处免费视频国产| 国产大陆亚洲精品国产| 国产成人精品日本亚洲网址| 可以免费看黄的网站| 亚洲日韩亚洲另类激情文学| 四只虎免费永久观看| 成人片黄网站色大片免费观看cn| 亚洲AV无码久久精品蜜桃| 四虎1515hh永久久免费| 精品亚洲av无码一区二区柚蜜| 亚洲人成国产精品无码| 久久午夜羞羞影院免费观看| 亚洲国产精品久久久久秋霞小| 中文字幕亚洲一区| 四虎在线免费视频| 美女黄色免费网站| 日韩a级毛片免费视频|