偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

C#的函數(shù)指針數(shù)組

開發(fā) 后端
本文介紹C#函數(shù)指針數(shù)組,在C++和Delphi中我們可以用C#函數(shù)指針數(shù)組來很好的解決這個(gè)問題。那我們?cè)贑#數(shù)組是不是也可以這樣去解決這個(gè)問題呢?答案是肯定的。

在向大家詳細(xì)介紹C#數(shù)組之前,首先讓大家了解下C#函數(shù)指針數(shù)組,以后全面介紹C#數(shù)組。

在大家開發(fā)網(wǎng)絡(luò)通訊軟件的時(shí)候,應(yīng)該都碰到過這種情況,在定義好通訊協(xié)議后要在程序中實(shí)現(xiàn)協(xié)議相應(yīng)的功能。如:

一個(gè)聊天程序有如下定義:
1……登陸
2……獲取好友列表
3……修改自己資料


N……退出

每個(gè)功能由如下C#函數(shù)指針數(shù)組實(shí)現(xiàn):
登陸
Void Login(UserIinfouser,Messagemsg);
獲取好友列表
void GetFriendList(UserInfouser,Messagemsg);
修改自己資料
void ModifySelfInfomation(UserInfouser,Messagemsg);


退出
Void Logout(UserInfouser,Messagemsg);

那現(xiàn)在我們要將它一一對(duì)應(yīng)起來,我們?cè)撛趺醋瞿兀亢芏嗳艘苍S會(huì)這樣做

  1. publicstaticvoidAnalyze(UserInfouser,Messagemessage)  
  2. ...{  
  3. switch(msg.Class)//Class是協(xié)議的類型標(biāo)志,下同  
  4. ...{  
  5. case1:  
  6. Login(user,message);  
  7. break;  
  8. case2:  
  9. GetFriendList(user,message);  
  10. break;  
  11. case3:  
  12. ModifySelfInfomation(user,message);  
  13. break;  
  14. …  
  15. caseN:  
  16. Logout(info,msg);  
  17. break;  
  18. default:  
  19. break;  
  20. }  

這樣做看起來沒有什么不妥。但是……如果協(xié)議條數(shù)非常多或者說很復(fù)雜呢?比如說:我的協(xié)議是二級(jí)甚至是三級(jí)分類的呢?用更多的switch和case?這樣顯然不是一個(gè)好主意。在C++和Delphi中我們可以用C#函數(shù)指針數(shù)組來很好的解決這個(gè)問題。那我們?cè)贑#是不是也可以這樣去解決這個(gè)問題呢?答案是肯定的。我們可以在C#中用委托數(shù)組來解決這個(gè)問題。

讓我們先定義一個(gè)C#委托和C#數(shù)組:

private delegate void AnalyzerHandler(UserInfo user, Message message);
static AnalyzerHandler[] MainAnalyzer;

然后將C#函數(shù)指針數(shù)組都放到這個(gè)C#數(shù)組里:

  1. MainAnalyzer=newAnalyzerHandler[]  
  2. ...{  
  3. Login,  
  4. GetFriendList,  
  5. ModifySelfInfomation,  
  6. …  
  7. Logout  

那我們?cè)趺凑{(diào)用呢?很簡單,這樣就行了!

  1. publicstaticvoidAnalyze(UserInfouser,Messagemessage)  
  2. ...{  
  3. if(message.Class>MainAnalyzer.Length||message.Class<0)//檢查Class  
  4. 有沒有超出有效范圍  
  5. return;  
  6. MainAnalyzer[message.Class-1](user,message);//因?yàn)閰f(xié)議是從1開始  
  7. 而數(shù)組的下標(biāo)是從0開始的,所以我們要在協(xié)議類型減去1  

【編輯推薦】

  1. C#在應(yīng)用程序間發(fā)送消息實(shí)現(xiàn)淺析
  2. 一些C#時(shí)間類型的入門知識(shí)
  3. C#接口和抽象類技術(shù)特點(diǎn)淺析
  4. 一個(gè)C#時(shí)間計(jì)算的實(shí)例
  5. C#繼承知識(shí)詳解
責(zé)任編輯:佚名 來源: IT168
相關(guān)推薦

2009-09-16 09:00:15

C#數(shù)組C#指針

2009-09-27 11:14:09

C#數(shù)組

2009-07-31 14:20:46

結(jié)構(gòu)數(shù)組C#函數(shù)的參數(shù)

2009-08-07 09:29:22

C#數(shù)組C#函數(shù)

2011-07-20 17:54:02

C++

2009-08-18 17:29:02

C#使用指針

2021-01-13 06:58:35

C語言函數(shù)指針

2010-02-01 13:08:46

C++函數(shù)指針C#托

2010-01-18 17:23:55

函數(shù)

2011-07-15 01:20:58

C指針函數(shù)函數(shù)指針

2009-08-13 15:48:57

C#指針

2009-08-21 15:16:23

C#使用指針

2009-08-03 17:12:40

C#指針操作

2009-08-18 17:37:57

C#固定指針

2024-03-28 18:12:28

指針函數(shù)指針C++

2009-09-02 10:58:02

C#動(dòng)態(tài)數(shù)組

2009-07-30 15:24:13

C#析構(gòu)函數(shù)C#構(gòu)造函數(shù)

2009-09-17 17:13:54

C#數(shù)組

2010-01-18 17:23:55

函數(shù)

2010-01-18 17:23:55

函數(shù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)