全面分析VB.NET數(shù)組語法總結
有些人會問道VB.NET的路在哪,為什么現(xiàn)在大多數(shù)人都喜歡java或者C#。今天就這個問題來和大家探討一下,在為大家講講關于VB.NET數(shù)組的一些概念和語法。
很多人想知道微軟為何重視C#而輕視VB.NET,為何VB.NET開發(fā)者和C#開發(fā)者同工不同酬,VB.NET開發(fā)者的未來在哪里。.NET管理語言組的項目經(jīng)理Lisa Feigenbaum在播客上向VB.NET社區(qū)保證——VB的未來依舊是光明燦爛的。
Lisa解釋了為何大家對VB.NET和C#有不同的理解:首先這是由微軟的策略所決定的。微軟可不僅僅想在CLR上面運行兩套語法完全不同的語言,公司希望這兩種語言能夠各司其職,因此在.NET的世界中,這兩種語言的發(fā)展路線是截然不同的。微軟發(fā)布的大多數(shù)文檔都包含了豐富的C#示例,與此相反,VB.NET的示例數(shù)量就大打折扣了,因此大家都覺得VB.NET并不受寵,有些窮途末路了。
根據(jù)Lisa所述,一開始微軟想在這兩種語言中分別加入不同的特性以便讓他們各取所長,但VB.NET用戶一次又一次地要求微軟向VB.NET中加入C#特性,同時C#用戶也想在C#中加入VB.NET特性,這么做的直接后果就是微軟決定同步發(fā)展這兩種語言。同時VB.NET開發(fā)者的數(shù)量要比C#開發(fā)者多一些,因此微軟并不會扼殺VB.NET,這也不是公司的意愿。當18個月前VB.NET與C#設計團隊合并在一起以共同推進語言的發(fā)展時,微軟的這項承諾也終于付諸實踐了。
C#的***架構師Anders Hejlsberg檢視了這兩個語言的發(fā)展歷程得出這樣一個結論:兩種語言都在不斷發(fā)展。每當Anders決定兩種語言要實現(xiàn)的某個新特性后,VB.NET與C#開發(fā)團隊就分別鉆進了各自的房間討論如何根據(jù)相應語言的語法和整體設計原則來實現(xiàn)這個新特性。這么做會導致兩種后果:其一,兩種語言增加同樣的特性集,其二,每種語言都保持自己的個性而不管另一種語言到底是怎么做的。這就確保了VB.NET并不會被C#所蠶食。這兩種語言的同化性越來越明顯了。到目前為止,C#能做而VB.NET不能做的東西就剩下XNA游戲了,因為VB.NET沒有對應的項目模板。然而微軟希望填平語言間的鴻溝,因此這兩種語言最終將走向大同世界。
我們將在下個版本的Visual Studio中看到兩個語言設計小組合并后的努力成果。VS最初是用C和C++開發(fā)的,但VS 2010的編輯器和編譯器將包含更多的托管代碼,力度也是史上***的,這意味著將使用更多的C#和VB.NET代碼。VS和Office并不會一夜間都變成托管代碼,因為還有不少遺留代碼尚存,但新寫的大部分都是托管代碼。
一些調(diào)查機構表示VB.NET與C#開發(fā)者同工不同酬,前者薪酬要比后者少10-15%,我們認為這是由于大家對VB.NET的認識偏差造成的,這種觀念已經(jīng)根深蒂固了,因此還需加以時日才能讓大家看到這兩種語言其實是一樣的,他們都是微軟的親生骨肉。下面來講解一下關于數(shù)數(shù)組的問題。
對數(shù)組進行操作的能力在任何編程語言中都很重要。VB.NET與其它語言相似,提供了簡單的途徑對數(shù)據(jù)進行分組,將它們存放到數(shù)組結構中。本文中,我們將回顧數(shù)組的聲明和使用。
VB.NET數(shù)組數(shù)組的目的
數(shù)組通常用于存儲相似類型的值和對象。它允許對變量進行分組,并且允許使用索引進行檢索。數(shù)組有上界和下界,它用于指示數(shù)組的開始索引值和結束索引值。另外,數(shù)組中的數(shù)據(jù)可以按序排列。簡單的數(shù)組是一維的,當然,在VB.NET中也可以使用多維數(shù)組。還可以對數(shù)組進行循環(huán),以確定或修改存儲在數(shù)組中的某個值。
VB.NET數(shù)組的聲明和初始化
有兩個途徑初始化數(shù)組:***,在一條聲明語句中進行聲明同時初始化;第二,先聲明數(shù)組,然后對其進行初始化。
在一條語句中同時聲明和初始化數(shù)組時,必須指定數(shù)組元素的數(shù)值類型,以及數(shù)組所包含元素的個數(shù)。VB.NET中,數(shù)組是基于0的,這也就是說,數(shù)組的索引編號從0開始,其后元素進行連續(xù)編號。必須通過指定數(shù)組的上界確定數(shù)組中元素個數(shù)。上界是指定數(shù)組中***一個元素索引的數(shù)字。Listing A給出了整型數(shù)組的聲明和初始化示例。
對數(shù)字進行聲明和初始化的另外一個途徑是:在分開的兩步中分別進行聲明和初始化操作。如果聲明了一個數(shù)組,但是在這一行沒有指定其大小,則在初始化時,需要對數(shù)組中的每一個單元都指定值。初始化值封裝在{}括號中,兩個值之間使用逗號做為分隔符。Listing B給出了在不同的兩步對數(shù)組進行聲明和初始化的示例。
VB.NET數(shù)組的聲明和初始化一旦完成,則可以在運行時重新定義數(shù)組,從而改變其大小。可以使用ReDim聲明改變數(shù)組結構中元素的個數(shù)。Listing C給出了聲明、初始化和重新調(diào)整數(shù)組大小的示例。默認情況下,數(shù)組進行重新初始化后,原來的數(shù)值都會丟失。但是,在重新初始化時,可以使用ReDim聲明和Preserve關鍵字保留數(shù)組的原有數(shù)值。Listing D中給出了一個這樣的示例。有兩種類型的多維數(shù)組:矩形的或鋸齒形的。矩形數(shù)組中,每一維的成員向其它維擴展時,增加相同的長度。而在鋸齒形數(shù)組中,每一維中的單個成員以不同長度向其它維擴展。數(shù)組的維數(shù)越多,其操作也相應越復雜。
【編輯推薦】