本篇內(nèi)容主要講解“C#的函數(shù)指針數(shù)組的用法”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“C#的函數(shù)指針數(shù)組的用法”吧!
創(chuàng)新互聯(lián)專注于企業(yè)成都營銷網(wǎng)站建設(shè)、網(wǎng)站重做改版、建鄴網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5建站、商城建設(shè)、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)公司、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為建鄴等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
在向大家詳細(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)在我們要將它一一對應(yīng)起來,我們該怎么做呢?很多人也許會這樣做
publicstaticvoidAnalyze(UserInfouser,Messagemessage) ...{ switch(msg.Class)//Class是協(xié)議的類型標(biāo)志,下同 ...{ case1: Login(user,message); break; case2: GetFriendList(user,message); break; case3: ModifySelfInfomation(user,message); break; … caseN: Logout(info,msg); break; default: break; } }
這樣做看起來沒有什么不妥。但是……如果協(xié)議條數(shù)非常多或者說很復(fù)雜呢?比如說:我的協(xié)議是二級甚至是三級分類的呢?用更多的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ù)組里:
MainAnalyzer=newAnalyzerHandler[] ...{ Login, GetFriendList, ModifySelfInfomation, … Logout }
那我們怎么調(diào)用呢?很簡單,這樣就行了!
publicstaticvoidAnalyze(UserInfouser,Messagemessage) ...{ if(message.Class>MainAnalyzer.Length||message.Class<0)//檢查Class 有沒有超出有效范圍 return; MainAnalyzer[message.Class-1](user,message);//因?yàn)閰f(xié)議是從1開始 而數(shù)組的下標(biāo)是從0開始的,所以我們要在協(xié)議類型減去1 }
到此,相信大家對“C#的函數(shù)指針數(shù)組的用法”有了更深的了解,不妨來實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!