国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

對(duì)于委托的理解(輕噴)

2019-11-14 16:48:52
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

這幾天學(xué)到委托了,感覺(jué) 蠻頭痛的, 腦袋有點(diǎn)不夠用,幾番周折,終于,對(duì)于委托似乎有了點(diǎn)理解 ,現(xiàn)總結(jié)如下 :

什么是委托?
 委托就是定義一個(gè) 對(duì)于方法的引用,類(lèi)似于c++中的函數(shù)指針。

委托的格式?
 修飾符1 delegate  修飾符2  
委托類(lèi)型名(變量n);
 

 修飾符1 為定義的委托的范圍修飾符,常用public;
 修飾符2為 返回值類(lèi)型修飾符,如 :  void ,string ,char等;
 名字 為我們定義一個(gè)委托類(lèi)型時(shí)所為它取得名字;

 對(duì)于 變量n  我們常常會(huì)有疑惑,委托是一個(gè) 方法嗎?  為什么會(huì)有返回值 以及變量呢 ?
其實(shí),委托并不是一個(gè)方法 ,而是一個(gè) 類(lèi)型,它之所以有返回值以及變量是為了 保持 與其委托的方法 保持一致;

注意 : 委托是一個(gè) 類(lèi)型  所以我們常常把它定義在一個(gè) 類(lèi)的外面;
 還有 ,委托類(lèi)型定義之后,我們還不能直接拿過(guò)來(lái)使用,還需要對(duì)它定義該類(lèi)型的 委托變量;

格式 :
修飾符1 delegate  修飾符2  委托類(lèi)型名(變量n);
委托類(lèi)型名   委托變量;


使用時(shí),還需要注意,我們?cè)谑褂脮r(shí)要使用定義的委托變量,而不是定義的委托類(lèi)型名,這類(lèi)似于我們定義枚舉型一樣; 因?yàn)槎x的委托變量是一個(gè)變量,所以 在使用之前我們還要對(duì)其進(jìn)行賦值。

格式: 
修飾符1 delegate  修飾符2  委托類(lèi)型名(變量n);
           委托類(lèi)型名   委托變量;
           委托變量=委托方法名;

注意: 這里的委托方法名就是你要委托的方法的名字,而且注意,不要加上了方法的參數(shù)以及括號(hào),同時(shí) ,這里委托的方法 還要與 該委托類(lèi)型定義時(shí)所 定義的  返回值類(lèi)型、參數(shù)列表類(lèi)型以及參數(shù)個(gè)數(shù)  保持一致;  


ok,現(xiàn)在 定義好了 委托類(lèi)型 ,該使用了 。  還記得委托是用來(lái)干嘛的嗎 ?
沒(méi)錯(cuò) ,委托是用來(lái)將方法作為參數(shù) 傳遞進(jìn)入其它方法的,
所以:
           我們要先定義一個(gè) 方法;
   范圍修飾符  【static】 返回值類(lèi)型修飾符    調(diào)用方法名( 變量n, 委托類(lèi)型  委托變量

{
      委托變量(變量n);
         .
         .
         .
    委托變量(變量 n);
}
 
上邊的變量n就是你所委托的方法的參數(shù);

開(kāi)始使用了 :
1)   委托類(lèi)型  委托變量; 
2)   委托變量=委托方法名;
3)   調(diào)用方法名(變量n,委托變量);
完整示例如下:

using System;

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

namespace  委托示例
{
      public delegate  void del(string str);     //定義的委托類(lèi)型
      calss  示例
      {
       static void send(string i)     //要委托的方法
       {
       console.WriteLine(i);
       }

       static  void sendup(string list,del  handler)  //調(diào)用方法
       {
         handler(list);
       }

       public  static  void  mian(string [] args)    //主方法
      {
           del  委托變量=send;   // 該句相當(dāng)于:  del 委托變量; 委托變量=send;
           sendup("這是一個(gè) 委托的示例!!!",委托變量);
           console.ReadKey();
          }

       }

 
 
 
 
 
 
 
歡迎指正錯(cuò)誤,共同學(xué)習(xí),共同進(jìn)步!!!!

發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 惠来县| 安宁市| 响水县| 鄱阳县| 红安县| 岳阳县| 绿春县| 彰武县| 阿克| 双峰县| 阳谷县| 昌图县| 延安市| 沾益县| 内丘县| 城市| 若尔盖县| 阿巴嘎旗| 鹤岗市| 邳州市| 辽阳市| 寻甸| 太保市| 丁青县| 额敏县| 广河县| 宜宾县| 无棣县| 衡阳县| 罗田县| 龙山县| 镇康县| 永宁县| 贞丰县| 云浮市| 纳雍县| 石渠县| 新兴县| 萨迦县| 盐津县| 富裕县|