最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

深入理解C#委托delegate的使用

 更新時間:2022年08月01日 11:22:55   作者:舊時量刑  
本文主要介紹了C#委托delegate的使用,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

1.什么是委托

委托就是委托某個方法來實現(xiàn)具體的功能,類似于:甲方委托乙方去實現(xiàn)需求;出租房屋人委托中介為其出租房屋。

委托是一種引用類型,從數(shù)據(jù)結(jié)構(gòu)上來講:委托和類一樣,都是一直用戶自定義類型。

2:委托的實現(xiàn)

委托是對方法的抽象和封裝。委托對象實質(zhì)上代表了方法的引用(即內(nèi)存地址)他存儲的就是一系列具有相同簽名和返回類型的方法的地址

可以理解為函數(shù)的一個包裝,它使得c#中的函數(shù)可以作為參數(shù)來被傳遞

使用時遵循三步走原則:定義委托、實例化委托,調(diào)用委托

調(diào)用委托時,委托包含的方法將被執(zhí)行

委托有三種方法:命名方法委托、多播委托、匿名委托

 命名法委托

1:定義委托

修飾符 delegate 返回值類型 委托名 {參數(shù)列表}

public delegate void FirstDelegate ();

靜態(tài)方法的實例化委托 

2:實例化委托

委托名 委托對象名=new 委托名{方法名}

FirstDelegate firstDelegate=new FirstDelegate(Test.First);

委托的方法可以是靜態(tài)方法的名稱,也可以是實例化方法的名稱

方法:

public class Test
{
 
     public static void First()
     {
         Console.WriteLine("第一次實現(xiàn)靜態(tài)方法類的委托");
     }
}

3:調(diào)用 

firstDelegate();

實例化方法的委托

2:實例化委托

委托名 委托對象名=new 委托名{方法名}

FirstDelegate firstDelegate=new FirstDelegate(new Test().First);

委托的方法可以是靜態(tài)方法的名稱,也可以是實例化方法的名稱

方法:

public class Test
{
 
     public  void First()
     {
         Console.WriteLine("第一次實現(xiàn)實例化方法類的委托");
     }
}

3:調(diào)用

firstDelegate();

多播委托 

多播委托就是一個委托中注冊多個方法,在注冊方法時可以在委托中通過加號或則減號來實現(xiàn)添加或者撤銷的方法。

例如 我想買飯吃 又想和奶茶 還想吃蛋糕,我委托一個人完不成,我需要委托三個人幫我完成,例如美團

1:定義委托

public class problem
{
? ? ?public delegate void BuyDelegate();
?
?
? ? ?static void mian()
? ? ?{
? ? ? ? ?BuyDelegate buyDelegate=new BuyDelegate(Buy.BuyFood);
? ? ? ? ?buyDelegate+=Buy.BuyCake;
? ? ? ? ?buyDelegate+=Buy.BuyTea;
?
? ? ? ? ?buyDelegate();
? ? ?}
}
?
public class Buy
{
? ? public void BuyFood()
? ? {
? ? ? Conssole.WriyeLine("買個螺獅粉");
? ? }
? ? public void BuyCake()
? ? ?{
? ? ? Conssole.WriyeLine("買個蛋糕");
?
? ? }
? ? public void BuyTea()
? ? {
? ? ? ?Conssole.WriyeLine("買杯奶茶");
? ? }
?
??
}

匿名委托

匿名委托就是 使用匿名的方法注冊在委托上 ,實際上就是委托中通過定義代碼塊來實現(xiàn)委拖的作用

1:定義委托

修飾符 delegate 返回值類型 委托名(參數(shù)列表)

2:實例化委托

委托名 委托對象=delegate

  代碼塊; 
};

3:調(diào)用匿名委托

委托對象(參數(shù)列表);

1:實現(xiàn)水果買賣

public class program
{
    public delegate void BuyFruit(double price,double count)
 
    static void main(string[] arg)
    {
 
        BuyFurit buyFruit=delegate
        {
           Console.WriteLine("水果總價為"+price*count);
        };
        buyFruit(3,5);
    }
 
}

什么時候適用委托

1:委托相當于用方法作為另一方法參數(shù),同時,也可以實現(xiàn)在兩個不能直接調(diào)用的方法中做橋梁,如在多線程中的跨線程的方法調(diào)用就得用委托。

2:委托使得一個方法可以作為另一個方法的參數(shù)進行傳遞,這就是委托最大的作用。使用委托可以將同類型的方法綁定到同一個變量上,當調(diào)用此變量時就可以一次調(diào)用綁定的方法,很方便。

到此這篇關(guān)于深入理解C#委托delegate的使用的文章就介紹到這了,更多相關(guān)C#委托delegate內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • c# WPF中System.Windows.Interactivity的使用

    c# WPF中System.Windows.Interactivity的使用

    這篇文章主要介紹了c# WPF中System.Windows.Interactivity的使用,幫助大家更好的理解和學(xué)習(xí)使用c#,感興趣的朋友可以了解下
    2021-03-03
  • C#如何將Access中以時間段條件查詢的數(shù)據(jù)添加到ListView中

    C#如何將Access中以時間段條件查詢的數(shù)據(jù)添加到ListView中

    這篇文章主要介紹了C# 將Access中以時間段條件查詢的數(shù)據(jù)添加到ListView中,需要的朋友可以參考下
    2017-07-07
  • C#實現(xiàn)自動生成電子印章

    C#實現(xiàn)自動生成電子印章

    網(wǎng)絡(luò)辦公正逐漸成為常態(tài),無紙化辦公也是一個潮流。本文將利用C#語言實現(xiàn)自動生成電子印章功能,文中的示例代碼講解詳細,感興趣的可以了解一下
    2022-08-08
  • C#中利用Lotus notes公共郵箱發(fā)送郵件的方法

    C#中利用Lotus notes公共郵箱發(fā)送郵件的方法

    這篇文章主要給大家介紹了關(guān)于C#中利用Lotus notes公共郵箱發(fā)送郵件的方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定參考學(xué)習(xí)價值,需要的朋友們下面來一起看看吧。
    2018-02-02
  • C#中委托的基礎(chǔ)入門與實現(xiàn)方法

    C#中委托的基礎(chǔ)入門與實現(xiàn)方法

    這篇文章主要給大家介紹了關(guān)于C#中委托的基礎(chǔ)入門與實現(xiàn)方法的相關(guān)資料,究竟什么是委托,用最通俗易懂的話來講,你就可以把委托看成是用來執(zhí)行方法(函數(shù))的一個東西,需要的朋友可以參考下
    2021-08-08
  • C#入門之索引器使用實例

    C#入門之索引器使用實例

    這篇文章主要介紹了C#的索引器使用方法,對此,C#初學(xué)者應(yīng)予以牢固掌握,需要的朋友可以參考下
    2014-08-08
  • C#實現(xiàn)Nginx平滑加權(quán)輪詢算法

    C#實現(xiàn)Nginx平滑加權(quán)輪詢算法

    這篇文章主要為大家詳細介紹了C#實現(xiàn)Nginx平滑加權(quán)輪詢算法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • WPF MVVM制作發(fā)送短信小按鈕

    WPF MVVM制作發(fā)送短信小按鈕

    這篇文章主要為大家詳細介紹了WPF MVVM發(fā)送短信小按鈕的制作方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-11-11
  • C# WinForm快捷鍵設(shè)置技巧

    C# WinForm快捷鍵設(shè)置技巧

    這篇文章主要給大家介紹C# winform快捷鍵設(shè)置技巧,涉及到C winform快捷鍵相關(guān)知識,對C winform知識感興趣的朋友可以參考下本篇文章
    2015-10-10
  • Winform消除button按下出現(xiàn)的虛線簡單實現(xiàn)方法

    Winform消除button按下出現(xiàn)的虛線簡單實現(xiàn)方法

    這篇文章主要介紹了Winform消除button按下出現(xiàn)的虛線簡單實現(xiàn)方法,通過重寫button設(shè)置Selectable參數(shù)實現(xiàn)該功能,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-08-08

最新評論

全州县| 建瓯市| 莱芜市| 康马县| 调兵山市| 孟州市| 河曲县| 泗阳县| 湄潭县| 拉萨市| 邢台县| 全椒县| 株洲县| 汨罗市| 抚州市| 镇江市| 房产| 杭锦旗| 伊宁市| 鄂托克前旗| 灌阳县| 鹤壁市| 平果县| 太和县| 林西县| 定日县| 渝北区| 青阳县| 吐鲁番市| 贵溪市| 湘西| 大足县| 拜泉县| 兴文县| 仙游县| 万全县| 会同县| 灌云县| 常德市| 买车| 慈溪市|