国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

編程工具VB6.0 與VB.NET 的比較研究

2010-12-08 08:51:52孫利娟
關(guān)鍵詞:數(shù)據(jù)類型關(guān)鍵字語(yǔ)句

孫利娟

(開(kāi)封教育學(xué)院,河南 開(kāi)封 475004)

0 引言

Visual Basic 6.0(簡(jiǎn)稱VB6.0)和Visual Basic.NET(簡(jiǎn)稱VB.NET)都是美國(guó)微軟公司推出的編程工具, 適合在Windows 環(huán)境下開(kāi)發(fā)各類應(yīng)用程序。它們的前身是QBASIC,語(yǔ)言基礎(chǔ)是BASIC (Biginners All-Purpose Symbolic Instruction Code, 即初學(xué)者通用符號(hào)指令代碼)。 BASIC 是20 世紀(jì)60 年代美國(guó)的Dart Mouth 學(xué)院的兩位教授共同設(shè)計(jì)的計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言,最初運(yùn)行在DOS 環(huán)境下,是當(dāng)時(shí)最流行的高級(jí)語(yǔ)言之一。 微軟公司于1991 年發(fā)布VB1.0, 用于輕松開(kāi)發(fā)應(yīng)用最廣泛的窗體應(yīng)用程序,極大地推動(dòng)了Windows 應(yīng)用程序的開(kāi)發(fā)。 此后版本不斷升級(jí),至1998 年8 月推出VB6.0。Visual Basic.NET 是微軟公司在2002 年推出的一種開(kāi)發(fā)基于.NET 平臺(tái)的Microsoft Visual Studio .NET 套件中主要組成部分之一,是微軟公司極力推薦的一種開(kāi)發(fā).NET 平臺(tái)應(yīng)用程序的開(kāi)發(fā)語(yǔ)言,也是目前世界上最為流行的編程工具之一[1]。

1 VB6.0V 與VB.NET 的整體特性及開(kāi)發(fā)環(huán)境

1.1 整體特性

VB6.0 是一種基于對(duì)象的可視化開(kāi)發(fā)工具,是專門為Microsoft 的32 位操作系統(tǒng)設(shè)計(jì)的,可用于開(kāi)發(fā)通信、數(shù)據(jù)庫(kù)、多媒體以及普通的Windows 應(yīng)用程序。 由于它秉承了VB 語(yǔ)言簡(jiǎn)單易學(xué)易用、功能強(qiáng)大的一貫特性,更由于VB6.0 新增在數(shù)據(jù)庫(kù)訪問(wèn)、控件以及支持Internet 方面的設(shè)計(jì)實(shí)現(xiàn)功能,使之成為廣大程序愛(ài)好者和專業(yè)開(kāi)發(fā)人員首選的編程工具。

NB.NET 是在VB6.0 的基礎(chǔ)上發(fā)展起來(lái)的,其語(yǔ)法與VB6.0相似,但VB.NET 并不是VB6.0 的簡(jiǎn)單升級(jí),而是增加了更多特性,演化為完全面向?qū)ο螅ň拖馛++)的編程語(yǔ)言,具有完全面向?qū)ο蟮奶匦裕缋^承、封裝、重載、多態(tài)等。VB.NET支持基于網(wǎng)絡(luò)應(yīng)用的開(kāi)發(fā), 適應(yīng)了電子商務(wù)時(shí)代的發(fā)展要求,除滿足一般編程和客戶/服務(wù)器應(yīng)用開(kāi)發(fā)的需要外,更為精彩的是,它還可以像創(chuàng)建普通表單一樣創(chuàng)建用戶自己的Web 動(dòng)態(tài)頁(yè)面。 VB.NET 的界面和編程風(fēng)格都統(tǒng)一在Visual Stutio.NET 下,一個(gè).NET項(xiàng)目支持多種語(yǔ)言的結(jié)合,用戶可以根據(jù)開(kāi)發(fā)的實(shí)際需求,自由選擇c#、Visual Basic .NET、Visual C++.NET 語(yǔ)言。 這樣既可以發(fā)揮各種語(yǔ)言各自特有的優(yōu)勢(shì),又可以節(jié)省企業(yè)對(duì)員工進(jìn)行開(kāi)發(fā)語(yǔ)言培訓(xùn)的費(fèi)用。 VB6.0 中的兩個(gè)薄弱環(huán)節(jié)——多線程和異常處理,在VB.NET 中得到了較好處理,開(kāi)發(fā)多線程應(yīng)用和使用C++/C# 別無(wú)二致, 結(jié)構(gòu)化異常處理也得到支持。

1.2 開(kāi)發(fā)環(huán)境

兩個(gè)軟件的集成開(kāi)發(fā)環(huán)境有較大變化。 (1)VB6.0 默認(rèn)只顯示一個(gè)工具箱, 不分類型, 而VB.NET 工具箱將工具分成了多種類型,每一種類型以標(biāo)簽形式顯示,包括數(shù)據(jù)類型、組件類型和Windows窗體類型,可隱藏或完全展開(kāi),工具數(shù)量大大增加。(2)VB6.0 和VC6.0 的開(kāi)發(fā)環(huán)境是各自獨(dú)立的,而Visual Studio .NET 把VB.NET、VC.NET、C#.NET、VJ#.NET 統(tǒng)一到一個(gè)集成開(kāi)發(fā)環(huán)境中。在該環(huán)境下,不同語(yǔ)言之間的數(shù)據(jù)和代碼交換也更方便,極大地簡(jiǎn)化了應(yīng)用程序開(kāi)發(fā)步驟,提高了編程效率。 另外,在先前的版本中,公用類界面對(duì)于用戶總是隱藏的,在Visual Basic.NET 中, 公用類可以在代碼窗口中瀏覽和編輯。

2 具體程序的實(shí)現(xiàn)

2.1 數(shù)據(jù)類型

.NET 平臺(tái)為所有支持語(yǔ)言提供了公共類型系統(tǒng),這就意味著所有語(yǔ)言都必須支持公共語(yǔ)言運(yùn)行環(huán)境所強(qiáng)制的相同的數(shù)據(jù)類型。 這樣就消除了不同語(yǔ)言之間數(shù)據(jù)類型的不兼容性。 例如,在一個(gè)32 位的Windows 平臺(tái)上,在C++這類語(yǔ)言中,Integer 數(shù)據(jù)類型占據(jù)4 個(gè)字節(jié),而在VB6.0 中,則占據(jù)2 個(gè)字節(jié)。 VB.NET 中與數(shù)據(jù)類型有關(guān)的變化為:(1)在.NET 下,VB.NET 中的Integer 數(shù)據(jù)類型也是4 個(gè)字節(jié)。 (2)VB.NET 沒(méi)有Currency 數(shù)據(jù)類型,作為代替,它提供了Decimal。 (3)VB.NET 引入了一種新的數(shù)據(jù)類型,叫做Char。Char 數(shù)據(jù)類型占據(jù)2 個(gè)字節(jié),可以存儲(chǔ)Unicode 字符。(4)VB.NET 沒(méi)有Variant 數(shù)據(jù)類型。 為了得到與Variant 類型相同的結(jié)果,可以使用Object 數(shù)據(jù)類型。 因?yàn)樵?NET 中的一切(包括原始數(shù)據(jù)類型),都是一個(gè)對(duì)象,一個(gè)Object 類型的變量,它可以指向任何數(shù)據(jù)類型。 (5)在VB.NET 中沒(méi)有固定長(zhǎng)度字符串的概念。

在VB6.0 中,我們使用Type 關(guān)鍵字來(lái)聲明用戶自定義結(jié)構(gòu)。 VB.NET 引入了與此目的相同的結(jié)構(gòu)關(guān)鍵字Structure,語(yǔ)法的其他部分是相同的。

2.2 變量聲明

在VB6.0 中不能同時(shí)用一個(gè)類型名聲明多個(gè)變量和初始化變量[2],而VB.NET 則支持這個(gè)特性。如在一個(gè)簡(jiǎn)單的VB6.0 例子“Dim x,y As Integer”中,VB6.0 將x看成Variant,把y 看成Integer。 VB.NET 改進(jìn)了這個(gè)解釋,它將x 和y 都創(chuàng)建成Integer。另外,VB.NET 還允許在聲明語(yǔ)句中為變量賦初始值[3],如:Dim str1 As String=“hello”。

VB.NET 還引入了Read-Only(只讀)變量。 只讀變量不像常數(shù),聲明它的時(shí)候不用初始化,但是一旦你給它賦值,就不能再修改。

2.3 數(shù)組

使用VB6.0 時(shí),用戶可以通過(guò)編程來(lái)自由定義數(shù)組的上限和下限。 而在VB.NET 中,數(shù)組的下限總是0,若定義數(shù)組為:Dim a (50) As String,實(shí)際創(chuàng)建的元素是51 個(gè),其中0 是下限,50 是上限。

2.4 Set 和Let 聲明

在VB6.0 中,出于默認(rèn)屬性的原因,必須使用Set 聲明為變量分配一個(gè)對(duì)象例示。 也就是說(shuō),要給對(duì)象本身指定一個(gè)變量(與對(duì)象的默認(rèn)值屬性值相反),就必須要使用Set 關(guān)鍵字。 但是在VB.NET 中,是不允許默認(rèn)屬性的(除非是參數(shù)化了的屬性),因此就不需要使用Set 關(guān)鍵字。 同樣,Let 關(guān)鍵字也從VB.NET 的語(yǔ)法中去掉了。

2.5 錯(cuò)誤處理

VB.NET 最終結(jié)合了結(jié)構(gòu)化錯(cuò)誤處理。 關(guān)鍵字Try、Catch 和Finally 使得錯(cuò)誤處理變得簡(jiǎn)單,也使VB.NET 與C++或C# 這些語(yǔ)言可以并列起來(lái)。 Try… Catch 的模式允許開(kāi)發(fā)人員將可能導(dǎo)致例外的代碼放置在一個(gè)Try 模塊中。 如果那個(gè)代碼確實(shí)造成了一個(gè)例外(與造成錯(cuò)誤同義),就執(zhí)行Catch 模塊中的代碼[4]。

2.6 靜態(tài)方法

靜態(tài)方法指的是那些不需要開(kāi)發(fā)人員創(chuàng)建類的例示就能調(diào)用的方法。 例如有一個(gè)名為L(zhǎng) 的類,其中有一個(gè)非靜態(tài)方法NonStatic()和一個(gè)靜態(tài)方法Static(),就可以通過(guò)“L.Static()”調(diào)用靜態(tài)方法。 但是,非靜態(tài)方法則需要?jiǎng)?chuàng)建類的一個(gè)例示,如:

Dim ObjL as NewL()

ObjL.NonStatic()

VB.NET 允許在類中創(chuàng)建靜態(tài)方法。 創(chuàng)建時(shí),只需要給方法定義、加上前綴Shared 關(guān)鍵字即可。

2.7 程序和函數(shù)

在默認(rèn)狀態(tài)下,VB6.0 中所有的程序參數(shù)都是通過(guò)引用方式(ByRef)來(lái)傳遞的,而VB.NET 是用值方式(ByVal)來(lái)傳遞的。 不管程序和函數(shù)是否接收參數(shù),當(dāng)調(diào)用它們的時(shí)候都需要圓括號(hào)。 VB6.0 中,函數(shù)返回值使用語(yǔ)法為:FunctionName=return_value。在VB.NET 中, 可 以 使 用Return 關(guān) 鍵 字, 以return_value 方式來(lái)表示返回值,也可以繼續(xù)使用舊的語(yǔ)法。

2.8 屬性語(yǔ)法

在VB6.0中,我們使用了Property Get 和Prop erty Set/Let 在類中創(chuàng)建屬性。 它們分別出現(xiàn)在單獨(dú)的程序中[1],如:

Public Property Get PropertyName () as DataType

……

End Property

Public Property Let PropertyName (value as DataType)

……

End Property

在VB.NET 中,Property Get 和Property Let/Set這兩個(gè)語(yǔ)句被合并成一個(gè)Property 語(yǔ)句,而不再是兩個(gè)單獨(dú)的語(yǔ)句[1]。 另外,在Property 語(yǔ)句的Set 部分中,變量Value 指的是用戶給指定屬性賦值時(shí)輸入的那個(gè)值。

Public [ReadOnly|WriteOnly] Property Property Name as DataType

Get

Return m_var

End Get

Set

m_var = Value

End Set

End Property

2.9 類成員訪問(wèn)域

除了原有的Private 和Public,VB.NET 引入了幾個(gè)新的關(guān)鍵字。 全部訪問(wèn)域關(guān)鍵字如表1 所示。

表1 VB.NET 全部訪問(wèn)域關(guān)鍵字列表Table 1 All access domain keywords list of VB.NET

另外,VB.NET 引入了命名空間 (namespace)的概念,每個(gè)類都?xì)w屬于某個(gè)namespace。 一個(gè)name space 是類和組件的邏輯組合,其目的在于將.NET class 按類別定義。

3 結(jié)語(yǔ)

以上分析是作者根據(jù)應(yīng)用VB 6.0 和VB.NET的經(jīng)驗(yàn)作的一個(gè)小結(jié)。 通過(guò)這些比較,兩者之間的異同可見(jiàn)一斑。 隨著科學(xué)技術(shù)的快速發(fā)展,也將會(huì)有一些功能更強(qiáng)大、 應(yīng)用更方便的編程語(yǔ)言出現(xiàn)(如VB2005、VB2008 等), 這將需要我們不斷的學(xué)習(xí)和總結(jié)。

[1] 朱小平,曾文權(quán),段班祥. Visual Basic.NET 程序設(shè)計(jì)[M].北京:清華大學(xué)出版社,2007:1-5,62-63,104-105.

[2] 李光明.中文Visual Basic 6.0 程序設(shè)計(jì)教程[M]. 北京:冶金工業(yè)出版社,2002:22.

[3] 黃玉春. Visual Basic 程序設(shè)計(jì)與實(shí)訓(xùn)教程[M]. 北京:清華大學(xué)出版社,2006:25-26.

[4] 劉懷亮. Visual Basic.NET 程序設(shè)計(jì)[M]. 北京:冶金工業(yè)出版社,2007:20.

猜你喜歡
數(shù)據(jù)類型關(guān)鍵字語(yǔ)句
履職盡責(zé)求實(shí)效 真抓實(shí)干勇作為——十個(gè)關(guān)鍵字,盤點(diǎn)江蘇統(tǒng)戰(zhàn)的2021
詳談Java中的基本數(shù)據(jù)類型與引用數(shù)據(jù)類型
重點(diǎn):語(yǔ)句銜接
如何理解數(shù)據(jù)結(jié)構(gòu)中的抽象數(shù)據(jù)類型
成功避開(kāi)“關(guān)鍵字”
精彩語(yǔ)句
如何搞定語(yǔ)句銜接題
基于用戶反饋的關(guān)系數(shù)據(jù)庫(kù)關(guān)鍵字查詢系統(tǒng)
誘導(dǎo)性虛假下載鏈接不完全評(píng)測(cè)
作文語(yǔ)句實(shí)錄
揭阳市| 浏阳市| 靖江市| 东乌珠穆沁旗| 宁都县| 方山县| 洞口县| 志丹县| 房产| 沧州市| 富裕县| 吉林省| 平阳县| 余江县| 洪泽县| 杭锦后旗| 长宁区| 芮城县| 木兰县| 新绛县| 吴忠市| 旺苍县| 灵璧县| 沧源| 胶南市| 舟山市| 合阳县| 泗水县| 花莲县| 通许县| 邯郸县| 潮安县| 碌曲县| 斗六市| 杭锦后旗| 资兴市| 海丰县| 光山县| 湖州市| 手机| 宜州市|