欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

C#中怎么委托

這篇文章主要為大家展示了“C#中怎么委托”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“C#中怎么委托”這篇文章吧。

專業(yè)成都網(wǎng)站建設(shè)公司,做排名好的好網(wǎng)站,排在同行前面,為您帶來客戶和效益!創(chuàng)新互聯(lián)為您提供成都網(wǎng)站建設(shè),五站合一網(wǎng)站設(shè)計(jì)制作,服務(wù)好的網(wǎng)站設(shè)計(jì)公司,成都網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站負(fù)責(zé)任的成都網(wǎng)站制作公司!

一、是什么

1)委托包含對方法而不是方法名稱的引用。使用委托可以在運(yùn)行時(shí)動(dòng)態(tài)設(shè)定要調(diào)用的方法,不知道方法名稱,也可以調(diào)用方法,執(zhí)行(或調(diào)用)一個(gè)委托將執(zhí)行該委托引用的方法。

2)委托將名稱與方法的定義連接起來,即將方法的實(shí)現(xiàn)附加到該名稱。這樣便可以使用該名稱調(diào)用特定的方法。但是,委托要求方法的實(shí)現(xiàn)和委托必須具有相同的方法簽名(也就是說,他們應(yīng)該具有相同數(shù)量/類型的參數(shù)),并有相同類型的返回值。

3)委托更像一個(gè)具有通用的方法名稱,在不同的情況將該名稱指向不同的方法,并通過委托執(zhí)行這些方法。

二、怎么用

使用委托包括三個(gè)步驟:

1)定義委托

2)實(shí)例化委托

3)使用委托

我們上一個(gè)例子:

class Program
{
    //定義一個(gè)委托
    public delegate int Call(int num1, int num2);
                                                     
    class Math
    {
        public int Mutiply(int num1, int num2)
        {
            return num1 * num2;
        }
                                                     
        public int Divide(int num1, int num2)
        {
            return num1 / num2;
        }
    }
                                                     
    static void Main(string[] args)
    {
        Call objCall;
        Math objMath = new Math();
        objCall = new Call(objMath.Mutiply);//實(shí)例化一個(gè)委托
                                                     
        int result = objCall(5, 3);//使用委托
        Console.WriteLine("結(jié)果為 {0}", result);
    }
}

上面的例子,我們再進(jìn)一步,用匿名委托實(shí)現(xiàn):

static void Main(string[] args)
{
    Call objCall = delegate(int num1, int num2) { return num1 * num2; };//匿名委托
    int result = objCall.Invoke(3, 5);//使用委托
    Console.WriteLine("結(jié)果為 {0}", result);//輸出:結(jié)果為 15
}

我們還可以將:

int result = objCall.Invoke(3, 5);//使用委托

替換為:

int result = objCall(3, 5);//使用委托

效果是一樣的。

再進(jìn)一步,用Lambda表達(dá)式進(jìn)行簡化,可以將:

Call objCall = delegate(int num1, int num2) { return num1 * num2; };//匿名委托

替換為:

Call objCall = (int num1, int num2) => { return num1 * num2; };//Lambda表達(dá)式

更簡化一步,變?yōu)椋?/p>

Call objCall = (num1, num2) => { return num1 * num2; };//Lambda表達(dá)式

這就是C#委托的進(jìn)化過程以及C#Lambda表達(dá)式對委托的支持。

三、什么時(shí)候用

1)委托類似于C語言中的函數(shù)指針,可以將方法作為函數(shù)的參數(shù)進(jìn)行傳遞

2)當(dāng)不知道方法的具體實(shí)現(xiàn)時(shí),就可以定義個(gè)委托,讓它替我們干活

3)我們在編程時(shí)用的最多的就是事件注冊時(shí)使用。

比如:

this.button1.Click += new EventHandler(button1_Click);//button1注冊Click事件
private void button1_Click(object sender, EventArgs e)
{
    //方法具體實(shí)現(xiàn)內(nèi)容
}

可以看到方法button1_Click作為參數(shù)傳遞給了EventHandler委托。

再比如在線程方法中:

Thread th = new Thread(new ThreadStart(Method));//這里的ThreadStart就是一個(gè)委托,里面可以直接傳一個(gè)方法名Method,以委托的形式調(diào)用方法
th.IsBackground = true;
th.Start();

以上是“C#中怎么委托”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

新聞標(biāo)題:C#中怎么委托
分享網(wǎng)址:http://aaarwkj.com/article20/jjphjo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、品牌網(wǎng)站制作、外貿(mào)網(wǎng)站建設(shè)、搜索引擎優(yōu)化、服務(wù)器托管、ChatGPT

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站
在线观看国产精品女主播户外麻豆 | 日本在线一区二区三区| 日韩在线一区二区视频| 欧美v日韩v亚洲综合国产高清 | 亚洲欧美国产另类精品| 久久精品亚洲精品毛片| 高潮少妇水多毛多av| 日韩免费精品一区二区| 亚洲精品中文字幕乱码三区91| 亚洲成av人片又粗又长| 六月综合激情丁香婷婷色| 美女张开腿让男人插进去| 丝袜美腿一区二区三区| 女性裸体无遮挡啪啪网站| 日本在线免费成人高清| 精品在线中文字幕不卡| 亚洲色图熟女激情另类| 熟女肥臀一区二区三区| 美女诱惑丝袜国产国产av丝袜 | 超碰97国产资源在线| 国产精品亚洲欧美日韩综合| 久久三级中文欧大战字幕| 久久久亚洲精品中文字幕蜜桃| 日本区一区二区三啪啪| 91人妻这里只有精品| 自拍偷拍视频欧美第一页| 国产美女口爆吞精久久| 日本久久久精品福利视频| 亚洲国产欧美日韩久久| 日韩精品毛片在线看| 国产老妇伦国产熟女高清| 国产激情久久久久久久久久久| 亚洲午夜黄色生活片观看| 精品人妻中文字幕在线| 欧美日韩黄色在线观看| 麻豆视频在线观看传媒| 久久精品国产亚洲av不卡| heyzo高清中文字幕在线| 一区二区在线日韩欧美| 国产女同一区二区三区久久| 国产精品久久久久精品三级下载|