日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
談?wù)刅B.NET數(shù)組的使用

我們都知道在所有程序設(shè)計(jì)語(yǔ)言中數(shù)組都是一個(gè)非常重要的概念,數(shù)組的作用是允許程序員用同一個(gè)名稱(chēng)來(lái)引用多個(gè)變量,因此采用數(shù)組索引來(lái)區(qū)分這些變量。很多情況下利用數(shù)組索引來(lái)設(shè)置一個(gè)循環(huán),這樣就可以高效地處理復(fù)雜的情況,因此在很多情況下,使用數(shù)組可以縮短或者簡(jiǎn)化程序的代碼。本文主要介紹VB.NET數(shù)組的使用,希望對(duì)大家的使用帶來(lái)幫助。

網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)公司!專(zhuān)注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、微信小程序定制開(kāi)發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶(hù)創(chuàng)新互聯(lián)還提供了望都免費(fèi)建站歡迎大家使用!

數(shù)組中的第一個(gè)元素的下標(biāo)稱(chēng)為下界,最后一個(gè)元素的下標(biāo)稱(chēng)為上界,其余的元素連續(xù)地分布在上下界之間,并且數(shù)組在內(nèi)存中也是用連續(xù)的區(qū)域來(lái)存儲(chǔ)的,所以要求聲明數(shù)組每維的長(zhǎng)度不能超過(guò)Long數(shù)據(jù)類(lèi)型的最大值,即264—1=263。

我們把VB.NET數(shù)組當(dāng)作一個(gè)對(duì)象來(lái)處理,這就意味著數(shù)組類(lèi)型是單個(gè)引用類(lèi)型,數(shù)組變量包含指向構(gòu)成數(shù)組元素、數(shù)組維和數(shù)組長(zhǎng)度等數(shù)據(jù)的指針,數(shù)組之間互相賦值其實(shí)只是在相互復(fù)制指針,而且數(shù)組繼承了System名字空間的Array類(lèi)。

VB.NET中提供的數(shù)組類(lèi)型和VB 6.0中有一些差別,我們將在下面做詳細(xì)的講解。

(1)VB.NET數(shù)組的聲明

VB.NET中的數(shù)組有兩種類(lèi)型:定長(zhǎng)數(shù)組和動(dòng)態(tài)數(shù)組。這里先介紹定長(zhǎng)數(shù)組的幾種不同的聲明方式,不同的聲明方法將導(dǎo)致數(shù)組不同的有效范圍。

◆Dim語(yǔ)句在模塊段建立模塊級(jí)數(shù)組,例如:

 
 
 
  1. Dim arrayl(3)As Integer  

◆Public語(yǔ)句在模塊的聲明部分建立一個(gè)公共數(shù)組,例如:

 
 
 
  1. Public counttype(20)as string  

◆Static語(yǔ)句聲明一個(gè)過(guò)程內(nèi)的局部數(shù)組,例如:

 
 
 
  1. Public Sub Ipaddress()  
  2. Static server(30)as string  
  3. End Sub 

VB.NET還提供了新的數(shù)組初始化語(yǔ)法,只需要簡(jiǎn)單的語(yǔ)句就可以完成數(shù)組的聲明和初始化,例如:

 
 
 
  1. New array initialization syntax  
  2. Dim arrayl As Integer()={2,4,8} 

在VB.NET中,為了和其他語(yǔ)言更加易于協(xié)同操作,數(shù)組的下標(biāo)均設(shè)定為0,不允許聲明一個(gè)下界為1的數(shù)組,因此Option Base語(yǔ)句不再被VB.NET支持,而且在聲明一個(gè)數(shù)組時(shí)必須用它的元素個(gè)數(shù),而不是它的上界來(lái)初始化,例如:

 
 
 
  1. //聲明一個(gè)一維數(shù)組具有3個(gè)元素,下標(biāo)從0~2  
  2. Dim arrayl(3)As Integer  
  3. arrayl(0):2  
  4. arrayl(1)=4  
  5. arrayl(2)=8 

以上聲明的數(shù)組有三個(gè)元素,下標(biāo)從0到2,如果代碼企圖訪問(wèn)下標(biāo)為3的數(shù)組元素,將引起運(yùn)行錯(cuò)誤。

(2)二維數(shù)組及多維數(shù)組

除了較為簡(jiǎn)單的一維數(shù)組外,VB.NET還支持多維數(shù)組,其聲明方法和一維數(shù)組沒(méi)有太大的區(qū)別,例如:

 
 
 
  1. StatiC multidim(10,10)as double  
  2.  Public Singledim(5,8,10,3)as single 

以上語(yǔ)句聲明了一個(gè)lO行,10列的二維數(shù)組。在VB.NET中,數(shù)組最多有32維,而且每一維的長(zhǎng)度都不能夠超過(guò)Long數(shù)組類(lèi)型的最大值。數(shù)組總尺寸的限制是不一樣的,這與所采用的操作系統(tǒng)以及計(jì)算機(jī)中使用的內(nèi)存量有關(guān)。數(shù)組的維數(shù)將保留在System.Array.Rank屬性中,每維的長(zhǎng)度可以由System.Array.GetLengfll方法來(lái)得到。需要提醒注意的是,由于VB.NET中數(shù)組是以0為基的,如果返回來(lái)的值為9,則表示數(shù)組是10維的。當(dāng)為數(shù)組繼續(xù)添加維數(shù)的時(shí)候,使其擴(kuò)展為多位數(shù)組,此時(shí)會(huì)使數(shù)組所需的存儲(chǔ)空間大幅度增加,所以在使用多維數(shù)組時(shí)對(duì)這個(gè)方面也要多加考慮。

另外VB.NET還提供了Lbound()和Lbound()兩個(gè)函數(shù)來(lái)返回?cái)?shù)組的上、下界。中國(guó)自學(xué)編程網(wǎng)整理發(fā)布 ,www.zxbc.cn對(duì)于一維數(shù)組而言,只需要一個(gè)參數(shù),那便是數(shù)組名。例如:

 
 
 
  1. one==Ubound(arrayl) 

對(duì)于多位數(shù)組,也只是簡(jiǎn)單地將逗號(hào)后面的第二個(gè)參數(shù)指定為數(shù)組的第幾維。例如:

 
 
 
  1. tw0=Lbound(multidim,7) 

如果沒(méi)有指明是哪一維,系統(tǒng)默認(rèn)為第一維。

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

有時(shí)在程序運(yùn)行之前無(wú)法確認(rèn)數(shù)組的大小,VB.NET提供了在程序運(yùn)行時(shí)動(dòng)態(tài)決定數(shù)組大小的功能,即動(dòng)態(tài)數(shù)組。它具有靈活多變的特點(diǎn),可以在任何時(shí)候根據(jù)需要隨時(shí)改變數(shù)組的大小,有助于內(nèi)存的管理。建立一個(gè)動(dòng)態(tài)數(shù)組的詳細(xì)步驟如下:

①和聲明一般數(shù)組一樣,可以使用前面介紹的幾種聲明,只是賦一個(gè)空維數(shù)組,這樣就將數(shù)組聲明為動(dòng)態(tài)數(shù)組。典型的聲明語(yǔ)句為:

 
 
 
  1. Dim types(  )  As integer 

②然后使用ReDim語(yǔ)句來(lái)配置數(shù)組大小。ReDim語(yǔ)句聲明只能在過(guò)程當(dāng)中使用,它是可執(zhí)行語(yǔ)句,可以改變數(shù)組中元素的個(gè)數(shù),但是卻不可以改變數(shù)組的維數(shù),就是說(shuō)不能把一維變?yōu)槎S。在ReDim語(yǔ)句配置數(shù)組元素個(gè)數(shù)時(shí),數(shù)組中的內(nèi)容將全部置為0。典型語(yǔ)句為:

 
 
 
  1. ReDim Types(X+1)  

③如果想改變數(shù)組大小又不想丟失原來(lái)的數(shù)據(jù),只要在ReDim語(yǔ)句中包含Preserve關(guān)鍵字就可以,典型語(yǔ)句為:

 
 
 
  1. ReDa_m PresetVe Types(10,23) 

對(duì)于多維數(shù)組,在使用Preserve關(guān)鍵字時(shí),只能修改最后一維的大小。如果改變其他維,那么將出現(xiàn)運(yùn)行錯(cuò)誤。如果不清楚某維的當(dāng)前大小,可以使用GetI~ength函數(shù)來(lái)獲取。

(4)VB.NET數(shù)組的使用

在’VB 6.0中,可以用For Each來(lái)循環(huán)遍歷一個(gè)數(shù)組。例如:

 
 
 
  1. Dim x As Integer  
  2.   F0r Each x In arrayl  
  3.   Console.WriteLine(x)  
  4.   Next 

在VB.NET中可以使用For循環(huán)和數(shù)組長(zhǎng)度來(lái)遍歷一個(gè)數(shù)組。例如:

 
 
 
  1. Dim i As工nteger  
  2.    F0r i=0 T0  (arrayl.Length-1)  
  3.  
  4.    Console.WriteLine(arrayl(1)J  
  5.    Next i  

在使用數(shù)組時(shí)還要注意,不僅聲明語(yǔ)法有變化,而且在運(yùn)行時(shí)處理方式也有了很大的變化。VB.NET在堆棧中給數(shù)組分配地址空間,當(dāng)向一個(gè)方法傳遞數(shù)組類(lèi)型的參數(shù)時(shí),使用的是引用傳遞而不是值傳遞。下面是互相傳遞數(shù)組引用的三個(gè)方法:

 
 
 
  1. Dim arrayl(3,3)AS Integer  
  2.     Dim array2 As Integer(,)  
  3.     Redim array2(3,3)  
  4.     Dim array3 As Integer(,)={{2,4},{12,29}}  

方法一在兩個(gè)方向同時(shí)傳遞了數(shù)組引用,一般用來(lái)向調(diào)用者返回?cái)?shù)組引用。方法二和方法三從調(diào)用者向方法的實(shí)現(xiàn)中傳遞了數(shù)組引用。方法二的參數(shù)被聲明為一維數(shù)組,而在方法三中參數(shù)被聲明成了-維數(shù)組。

(5)數(shù)組的高級(jí)特性

①數(shù)組的數(shù)組

在O~ect數(shù)組中還可以組裝不同類(lèi)型的數(shù)組。例如,以下代碼中先建立兩個(gè)數(shù)組,一個(gè)是Integer類(lèi)型,另一個(gè)是String類(lèi)型,然后再聲明一個(gè)O~ect類(lèi)型的數(shù)組,把前兩個(gè)數(shù)組分裝在其中。

 
 
 
  1. Dim I as integer  
  2. //聲明一個(gè)integer類(lèi)型的數(shù)組  
  3. Dim grade(15)as integer  
  4. For i:0 tO 14  
  5. Grade(i)=i  
  6. NeXt i  
  7. //聲明一個(gè)string類(lèi)型的數(shù)組  
  8. Dim name(15)as String  
  9. For i=0 tO 14  
  10. Name(i):”Student”&cstr(i)  
  11. Next i  
  12. //聲明一個(gè)新的數(shù)組為object,用來(lái)組裝其他數(shù)組  
  13. Dim Student(2)as object  
  14. Student(0)=grade  
  15. Student(1)=name  
  16. Msgbox(student(0)(2))  //顯示”2”  
  17. Msgbox(student(1)(3))  //顯示”student 3”。 

上述代碼中使用了student(0)和student(1)的后綁定。注意,只有在Option s~ict被關(guān)閉時(shí),VB.NET編譯器才允許使用后綁定。

②數(shù)組和集合

雖然集合通常用于操作對(duì)象,但是它也能操作數(shù)據(jù)類(lèi)型。在某些條件下,其效率比數(shù)組還要高。我們可以通過(guò)以下4個(gè)方面來(lái)進(jìn)行比較。

◆集合可以根據(jù)需要進(jìn)行擴(kuò)充,不像數(shù)組那樣需預(yù)先規(guī)定大小。

◆數(shù)組只能保存聲明時(shí)所定義的數(shù)據(jù)類(lèi)型,但是同一個(gè)集合中可以存儲(chǔ)不同類(lèi)型的數(shù)據(jù)。

◆集合元素的修改較為麻煩,不像數(shù)組那么方便。

◆處理集合的速度較數(shù)組慢,但是在處理較小的動(dòng)態(tài)條目集,使用集合是最為理想的選擇。

【編輯推薦】

  1. .Net開(kāi)發(fā) 細(xì)說(shuō)Visual Basic.Net
  2. VB.NET中有用的通用對(duì)象列表
  3. 淺談VB.NET中的跨進(jìn)程消息鉤子
  4. “簡(jiǎn)單的.NET面試題”?以及IL代碼的用途
  5. VB.NET路在何方?

名稱(chēng)欄目:談?wù)刅B.NET數(shù)組的使用
文章路徑:http://www.5511xx.com/article/dpogjci.html