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

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

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

    JUST DO IT ~

    我只想當個程序員

    dotnet 委托


    委托 是一個類型



    1.作用: 屏蔽方法名 ,靈活性動態(tài)性函數(shù)指針

    2 .使用:

    定義一個委托:      和一個類一樣的

    delegatevoid Del (int x);

    或者

    delegatevoid Del <T> (T x);

    定一個委托變量和賦值

    Main(){

    Del d = obj.DoWork; 實例方法或者靜態(tài)方法都可以   

    }

       Del <int> g;

        g= Goodone;

        g(3333);

    3 . 盡管委托可以使用不建議用 out 參數(shù)

    但建議您不要將其用于多路廣播事件委托,因為您無法知道哪個委托將被調(diào)用。

    4. 委托中的協(xié)變和逆變----

    --- 其實函數(shù)傳遞的子類自動適應(yīng)父類參數(shù)和返回值

    5 多播 :  + - 操作符重載了 可以添加多個 ,

        MethodClass obj = new MethodClass();

            Del d1 = obj.Method1;

            Del d2 = obj.Method2;

            Del d3 = DelegateMethod;

            Del allMethodsDelegate = d1 + d2;

            allMethodsDelegate += d3;

            System.Console.WriteLine("-1-");

            allMethodsDelegate("xx");







     

    委托和接口都允許-------類設(shè)計的時候-----分離----------類型聲明和實現(xiàn)。

    條件:

    任何類或結(jié)構(gòu)都能繼承和實現(xiàn)給定的接口。

    可以為任何類上的方法創(chuàng)建委托,前提是該方法符合委托的方法簽名

    目的:

    接口引用或委托可由不了解實現(xiàn)(動態(tài)性)該接口或委托方法的類的對象使用。

    既然存在這些相似性,那么類設(shè)計器何時應(yīng)使用委托,何時又該使用接口呢?

    使用委托:

    ·                       當使用事件設(shè)計模式時。

    ·                       封裝靜態(tài)方法可取時。

    ·                       當調(diào)用方不需要訪問實現(xiàn)該方法的對象中的其他屬性、方法或接口時。

    ·                       需要方便的組合。

    A - B - c 

    B –a –c

    C –b –a

    ·                       可能需要該方法的多個實現(xiàn)時。

    --不是override 是函數(shù)返回值相同.但是參數(shù)不同

    類型 A

    Void method_a (string );

    Void method_b(string);

    Void method_c(string);

    不同的方法名字,但是同一個方法的

    使用接口:

    ·                       當存在一組可能被調(diào)用的相關(guān)方法時。

    ---   多個不同函數(shù) , 需要

    一個接口里面包含多個方法, 因為一個邏輯關(guān)系可能被調(diào)用. 所以放在一起

    ·                       當類只需要方法的單個實現(xiàn)時。

    ·                       當使用接口的類想要將該接口強制轉(zhuǎn)換為其他接口或類類型時。

     多個接口套用

    ·                       當正在實現(xiàn)的方法鏈接到類的類型或標識時:例如比較方法。

    使用單一方法接口而不使用委托的一個很好的示例是 IComparable 或泛型版本 IComparable(T)IComparable聲明 CompareTo 方法,該方法返回一個整數(shù),指定相同類型的兩個對象之間的小于、等于或大于關(guān)系。

    IComparable可用作排序算法的基礎(chǔ)。雖然將委托比較方法用作排序算法的基礎(chǔ)是有效的,但是并不理想。因為進行比較的能力屬于類,

    而比較算法不會在運行時改變,

    所以單一方法接口是理想的。






    posted on 2009-02-01 11:06 小高 閱讀(231) 評論(0)  編輯  收藏 所屬分類: DotNet

    導(dǎo)航

    <2009年2月>
    25262728293031
    1234567
    891011121314
    15161718192021
    22232425262728
    1234567

    統(tǒng)計

    常用鏈接

    留言簿(3)

    隨筆分類(352)

    收藏夾(19)

    關(guān)注的blog

    手冊

    搜索

    積分與排名

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲ⅴ国产v天堂a无码二区| 午夜色a大片在线观看免费| 在线免费视频你懂的| 国产无遮挡又黄又爽免费网站| 亚洲视频在线观看免费| 在线观看免费为成年视频| 亚洲色无码国产精品网站可下载| 猫咪www免费人成网站| 两性色午夜视频免费网| 亚洲色精品vr一区二区三区| 亚洲一区二区三区高清| 亚洲AV成人无码网天堂| 国产一区二区三区免费| 看全色黄大色大片免费久久| 亚洲av不卡一区二区三区| 全免费a级毛片免费看| 亚洲中文字幕无码爆乳av中文| 亚洲精品中文字幕无码AV| 一级毛片免费不卡直观看| 无码国产精品一区二区免费式直播| 国产一区二区三区在线免费观看| 亚洲人成电影福利在线播放 | 亚洲国产一区二区三区青草影视| 亚洲免费精彩视频在线观看| 亚洲乱码卡三乱码新区| 在线观看免费无码视频| 又黄又爽无遮挡免费视频| 亚洲国产视频一区| 国产成年无码久久久免费| 亚洲视频在线一区二区| 欧洲人成在线免费| 国产AV旡码专区亚洲AV苍井空| 99re热精品视频国产免费| 亚洲色欲色欲www在线丝| 曰批全过程免费视频播放网站 | 羞羞漫画小舞被黄漫免费| 亚洲线精品一区二区三区| 综合在线免费视频| 亚洲成AV人综合在线观看| 国产在线观看免费完整版中文版| 亚洲色大情网站www|