Visual Basic(簡稱VB)是Microsoft開發的一種面(mian)向對象的編程語言(yan)。使用(yong)(yong)Visual Basic即可快(kuai)速、輕松地創建類型安全的.NET應用(yong)(yong)。
“Visual”指(zhi)(zhi)的(de)是開發圖形用戶界面(mian)(GUI)的(de)方法(fa)——不需編(bian)寫大(da)量(liang)代碼(ma)去描述界面(mian)元素的(de)外觀(guan)和位置,而只(zhi)要把預先(xian)建立的(de)對象add到屏幕上的(de)一點即可。“Basic”指(zhi)(zhi)的(de)是BASIC(Beginners All-Purpose Symbolic Instruction Code)語(yu)言,是一種在計算技術(shu)發展歷史上應用得最為廣泛(fan)的(de)語(yu)言。
Visual Basic源自(zi)于(yu)BASIC編程語言(yan)。VB擁有圖形用(yong)(yong)戶界(jie)面(mian)(GUI)和快(kuai)速應(ying)(ying)用(yong)(yong)程序(xu)開發(RAD)系統,可(ke)(ke)以輕(qing)易的使用(yong)(yong)DAO、RDO、ADO連接數據庫,或者輕(qing)松的創建Active X控件,用(yong)(yong)于(yu)高(gao)效生成類型安(an)全和面(mian)向對象的應(ying)(ying)用(yong)(yong)程序(xu)。程序(xu)員可(ke)(ke)以輕(qing)松的使用(yong)(yong)VB提(ti)供的組(zu)件快(kuai)速建立一個應(ying)(ying)用(yong)(yong)程序(xu)。
VB 6.0 啟動畫面
1991年4月,微軟(ruan)公司(si)推出了Visual Basic 1.0Windows版本(ben),這個連(lian)接(jie)編程(cheng)語言和用戶界面的(de)進步被稱為Tripod(有些時(shi)(shi)候叫(jiao)做(zuo)Ruby),最初的(de)設(she)計是(shi)由(you)阿蘭·庫(ku)珀(Alan Cooper)完成的(de)。在當(dang)時(shi)(shi),它是(shi)第一個“可視”的(de)編程(cheng)軟(ruan)件。
而后多年(nian),Visual Basic經過多次(ci)發展(zhan)(zhan),其發展(zhan)(zhan)歷程展(zhan)(zhan)示(shi)在(zai)“Visual Basic發展(zhan)(zhan)簡史(shi)”表中(zhong)。
在2020年3月11日,微軟宣布(bu)不會再開發(fa)VB或增加功能。
Visual Basic 發展簡史
發布(bu)日(ri)期 名稱 說明
.NET Framework 引入之前
Apr-91 Visual Basic 1.0 Windows 版本
Sep-92 Visual Basic 1.0 DOS 版本
Nov-92 Visual Basic 2.0 對于上一(yi)個版本的(de)界面(mian)和(he)速度都有所改善。
Jun-93 Visual Basic 3.0 包含(han)一個(ge)數(shu)據(ju)引擎,可以直接讀取(qu)Access數(shu)據(ju)庫。
Aug-95 Visual Basic 4.0 發布(bu)了32位和16位的(de)版本。其中包含了對類(lei)的(de)支持。
Feb-97 Visual Basic 5.0 包含了對用戶(hu)自建控件的支(zhi)持,且(qie)從這個版本開始VB可(ke)以(yi)支(zhi)持中(zhong)文。
Oct-98 Visual Basic 6.0
.NET Framework 引入(ru)之后
Feb-02 Visual Basic .NET 2002 (7.0) 由(you)于(yu)其使用了(le)新的核心和特性,所以很多VB的程序員(yuan)都(dou)要改寫程序。
Apr-03 Visual Basic .NET 2003 (7.1) 主(zhu)要改進了運(yun)(yun)行狀況,提升了IDE以及運(yun)(yun)行時穩定性。
Nov-05 Visual Basic 2005 (8.0) 是 vb .net 的重大轉變,微(wei)軟決意在其名(ming)稱(cheng)中去掉了".NET"部(bu)份(fen)。VB2005提供My偽命名(ming)空(kong)間、泛型(xing)、操作符重載等(deng)新語(yu)言特性(xing)。
Nov-07 Visual Basic 2008 (9.0)提(ti)供(gong)支持IIF函數(shu)、匿名類、LINQ、Lambda表達式(shi)、XML數(shu)據結構(gou)等新語言特性。
Mar-08 微軟宣(xuan)布結(jie)束對(dui)于(yu) VB 6.0的延(yan)長支持(chi)。
Apr-10 Visual Studio 2010 (10.0)提供(gong)支持Dynamic Language Runtime (DLR)、自動實現屬性、集(ji)合初(chu)始(shi)化(hua)、不需要在(zai)代碼斷行書寫時(shi)輸(shu)入(ru)下劃(hua)線“_”等新語言特性。
May-12 Visual Studio 2012 (11.0) RC 提供支持(chi)更簡(jian)易的異步(bu)編(bian)程(cheng)(Asynchronous Programming)、Iterator、擴(kuo)充Global 關鍵詞等新(xin)語言(yan)特性。
2014-11-13-2 Visual Studio 2013
2014/11/13 Visual Studio 2015 Windows、iOS以及Android應(ying)用開(kai)發
在VB中,注釋(shi)有2種方式。
1.以Rem關(guan)鍵(jian)字開頭,并且Rem關(guan)鍵(jian)字與注釋內(nei)容(rong)之(zhi)間要加一個空格。注釋可以是單獨的一行(xing),也可以寫在其他語(yu)句行(xing)的后(hou)面(mian)。如果在其他語(yu)句行(xing)后(hou)使(shi)用Rem關(guan)鍵(jian)字,則必須(xu)使(shi)用冒號(:)與語(yu)句隔開。
2.使用(yong)一個撇號(')來代替Rem關鍵字。若使用(yong)撇號,則在(zai)其他語句行使用(yong)時不必加(jia)冒號。
在Visual Basic中,可通過屬性(xing)、方法(fa)和(he)事(shi)件來說(shuo)明和(he)衡量一個(ge)對(dui)象的特(te)征(zheng)。
事件(Event)
事(shi)件(jian)是指發(fa)生在某(mou)(mou)一對象(xiang)上(shang)的(de)事(shi)情。事(shi)件(jian)又可分為鼠(shu)標(biao)(biao)事(shi)件(jian)和鍵盤事(shi)件(jian)。例(li)如,在命令按(an)鈕(Command Button)這一對象(xiang)上(shang)可能發(fa)生鼠(shu)標(biao)(biao)單擊(Click)、鼠(shu)標(biao)(biao)移(yi)動(Mouse Move)、鼠(shu)標(biao)(biao)按(an)下(Mouse Down)等(deng)鼠(shu)標(biao)(biao)事(shi)件(jian),也可能發(fa)生鍵盤按(an)下(Key Down)等(deng)鍵盤事(shi)件(jian)。總之,事(shi)件(jian)指明了對象(xiang)“什么情況下做?”,常用于定義對象(xiang)發(fa)生某(mou)(mou)種(zhong)反映(ying)的(de)時機和條件(jian)。
方法(Method)
方(fang)(fang)法(fa)是(shi)用來控制對(dui)象的功能及(ji)操作(zuo)的內部程序。例如,人具(ju)有(you)(you)說話、行走、學(xue)習、睡覺等功能,在(zai)visual Basic中,對(dui)象所能提供的這些功能和操作(zuo),就稱(cheng)作(zuo)“方(fang)(fang)法(fa)”。以(yi)窗體為例,它具(ju)有(you)(you)顯示(show)或(huo)隱藏(hide)的方(fang)(fang)法(fa)。總之(zhi),方(fang)(fang)法(fa)指明了對(dui)象“能做什么?”,常用于定義對(dui)象的功能和操作(zuo)。
屬性(Property)
屬(shu)性(xing)(xing)是指用于描(miao)述(shu)對象(xiang)的名稱、位置、顏(yan)色、字體等特征的一些指標(biao)。可以通(tong)過屬(shu)性(xing)(xing)改變對象(xiang)的特性(xing)(xing)。
有些屬(shu)(shu)性可(ke)以在設(she)計時(shi)通(tong)(tong)過屬(shu)(shu)性窗口來(lai)設(she)置(zhi),不用編寫任何代(dai)碼(ma);而有些屬(shu)(shu)性則必須通(tong)(tong)過編寫代(dai)碼(ma),在運(yun)行(xing)程序(xu)的(de)(de)(de)同時(shi)進行(xing)設(she)置(zhi)。可(ke)以在運(yun)行(xing)時(shi)讀取(qu)和設(she)置(zhi)取(qu)值的(de)(de)(de)屬(shu)(shu)性成為讀寫屬(shu)(shu)性,只(zhi)能(neng)讀取(qu)的(de)(de)(de)屬(shu)(shu)性成為只(zhi)讀屬(shu)(shu)性。總之(zhi)屬(shu)(shu)性指明了對象(xiang)“是什(shen)么樣的(de)(de)(de)?”,常用于定(ding)義(yi)對象(xiang)的(de)(de)(de)外觀。
對象(Object)
Visual Basic.NET具有“面向對(dui)象(xiang)”的特(te)性(xing),Visual Basic.NET應用(yong)(yong)種程(cheng)序(xu)(xu)的基本單元(yuan)是(shi)對(dui)象(xiang),用(yong)(yong)Visual Basic.NET編程(cheng)就是(shi)用(yong)(yong)“對(dui)象(xiang)”組(zu)裝(zhuang)程(cheng)序(xu)(xu)。這種“面向對(dui)象(xiang)”的編程(cheng)方法(fa)(fa)與傳統的全部用(yong)(yong)代(dai)碼編制程(cheng)序(xu)(xu)的方法(fa)(fa)有很大區別,就像(xiang)用(yong)(yong)集成電(dian)路芯片組(zu)裝(zhuang)電(dian)視機(ji)和用(yong)(yong)三極管(guan),二極管(guan)組(zu)裝(zhuang)電(dian)視機(ji)的區別一樣。顯然,“面向對(dui)象(xiang)”的編程(cheng)方法(fa)(fa)比傳統的編程(cheng)方法(fa)(fa)更簡單,更方便,并且編寫出的程(cheng)序(xu)(xu)也更加穩定。因此,“對(dui)象(xiang)”可以被看做Visual Basic.NET程(cheng)序(xu)(xu)設(she)計的核心。
在Visual Basic.NET程序設(she)計中,對象中還(huan)可以(yi)(yi)包(bao)含頭,手,腿(tui),腳等部(bu)位,其(qi)中的每個(ge)部(bu)位又(you)可以(yi)(yi)單(dan)獨作(zuo)為(wei)(wei)作(zuo)為(wei)(wei)被研究的對象。在Visual Basic.NET程序設(she)計中,整個(ge)應(ying)用程序就是一個(ge)對象,應(ying)用程序中又(you)包(bao)含著窗體(Form),命令按鈕(Command),菜(cai)單(dan)(Menu)等對象。
類(Class)
在(zai)Visual Basic.NET中,對象是(shi)由類(lei)創(chuang)建的(de),因此(ci)對象可以說是(shi)類(lei)的(de)具(ju)體實(shi)例,這就(jiu)好(hao)比(bi)是(shi)蛋糕和做蛋糕的(de)模具(ju)之間的(de)關系。
各種(zhong)不(bu)同(tong)(tong)(tong)(tong)(tong)的(de)對(dui)(dui)(dui)象(xiang)(xiang)(xiang)(xiang)分屬于各種(zhong)不(bu)同(tong)(tong)(tong)(tong)(tong)的(de)種(zhong)類。同(tong)(tong)(tong)(tong)(tong)一類對(dui)(dui)(dui)象(xiang)(xiang)(xiang)(xiang)可(ke)(ke)能具有一些(xie)不(bu)同(tong)(tong)(tong)(tong)(tong)的(de)特(te)征(或是(shi)說(shuo)同(tong)(tong)(tong)(tong)(tong)一類對(dui)(dui)(dui)象(xiang)(xiang)(xiang)(xiang)不(bu)一定具有完全相(xiang)同(tong)(tong)(tong)(tong)(tong)的(de)特(te)性);具有某些(xie)相(xiang)同(tong)(tong)(tong)(tong)(tong)的(de)特(te)性的(de)對(dui)(dui)(dui)象(xiang)(xiang)(xiang)(xiang),不(bu)一定是(shi)同(tong)(tong)(tong)(tong)(tong)一類對(dui)(dui)(dui)象(xiang)(xiang)(xiang)(xiang),這(zhe)就好比是(shi)人和猴子(zi)雖(sui)然都有身高、性別等特(te)征,但二者之間還存在著智(zhi)商、語(yu)言等特(te)性差異(yi)(yi),這(zhe)兩個(ge)對(dui)(dui)(dui)象(xiang)(xiang)(xiang)(xiang)之間的(de)特(te)性相(xiang)差很多(duo),根本就不(bu)能算(suan)是(shi)同(tong)(tong)(tong)(tong)(tong)一類對(dui)(dui)(dui)象(xiang)(xiang)(xiang)(xiang)。而男人和女(nv)人,雖(sui)然有著性別、生(sheng)理等方(fang)面(mian)的(de)差異(yi)(yi),但他(ta)們絕大部分特(te)性相(xiang)同(tong)(tong)(tong)(tong)(tong),可(ke)(ke)以算(suan)是(shi)同(tong)(tong)(tong)(tong)(tong)一種(zhong)類。由此,可(ke)(ke)以歸結為一句(ju)話:同(tong)(tong)(tong)(tong)(tong)一類對(dui)(dui)(dui)象(xiang)(xiang)(xiang)(xiang)的(de)絕大部分特(te)性相(xiang)同(tong)(tong)(tong)(tong)(tong)。
根據應(ying)用類型,Visual Basic控件可(ke)以分為如下3類:
內置(zhi)控件即(ji)Visual Basic工具箱中的(de)控件,里面包含了常見窗(chuang)體(ti)程序所需要(yao)的(de)控件
Visual Basic中,大部分的(de)(de)程(cheng)序執行都是在事件(jian)中完成的(de)(de)。
在(zai)代碼中,控(kong)件(jian)(jian)的(de)每一個事件(jian)(jian)都需要(yao)聲明(ming),聲明(ming)方法類(lei)似一個子過程的(de)聲明(ming)。大(da)部分的(de)控(kong)件(jian)(jian)在(zai)雙擊控(kong)件(jian)(jian)進入代碼界(jie)面的(de)時(shi)候(hou)都會自動補完該控(kong)件(jian)(jian)的(de)最(zui)常用事件(jian)(jian)的(de)聲明(ming)。具體(ti)代碼示范如下:
ActiveX控(kong)(kong)件(jian)包含不同版(ban)本Visual Basic提供(gong)的控(kong)(kong)件(jian)和僅在專業版(ban)、企業版(ban)中(zhong)提供(gong)的控(kong)(kong)件(jian),并且還包含第(di)三方提供(gong)的控(kong)(kong)件(jian)。ActiveX控(kong)(kong)件(jian)是對Visual Basic內置控(kong)(kong)件(jian)的擴充(chong),開發人(ren)員可以根據個人(ren)需要進行隨意擴充(chong),擴充(chong)的ActiveX控(kong)(kong)件(jian)將在工(gong)具箱中(zhong)顯示。
在(zai)Visual Basic的(de)(de)工(gong)具欄(lan)中(zhong),可(ke)以放(fang)置其(qi)他的(de)(de)第三方對象(xiang),可(ke)以像使用(yong)(yong)控件(jian)一樣輕松使用(yong)(yong)。添加后的(de)(de)對象(xiang)也在(zai)工(gong)具箱中(zhong)顯示。有關第三方對象(xiang),可(ke)以從受信任的(de)(de)來源下載控件(jian),并通過添加引用(yong)(yong)來導入。支(zhi)持這些自定義的(de)(de)Vb的(de)(de)控件(jian)有:ComponentOne Studio,Spread,ActiveReports、MultiRow等。
VB的(de)(de)(de)(de)中心思想就是(shi)(shi)要便于(yu)(yu)程(cheng)(cheng)序(xu)(xu)(xu)(xu)員(yuan)使(shi)用(yong),無論(lun)是(shi)(shi)新手或者專家。VB使(shi)用(yong)了(le)可以簡單(dan)建立應用(yong)程(cheng)(cheng)序(xu)(xu)(xu)(xu)的(de)(de)(de)(de)GUI系(xi)統(tong),但是(shi)(shi)又可以開發(fa)相當復雜的(de)(de)(de)(de)程(cheng)(cheng)序(xu)(xu)(xu)(xu)。VB的(de)(de)(de)(de)程(cheng)(cheng)序(xu)(xu)(xu)(xu)是(shi)(shi)一種基于(yu)(yu)窗(chuang)體的(de)(de)(de)(de)可視化組件(jian)安(an)排的(de)(de)(de)(de)聯合,并且增加(jia)代碼來指定組件(jian)的(de)(de)(de)(de)屬(shu)性和(he)方法(fa)。因為默認(ren)的(de)(de)(de)(de)屬(shu)性和(he)方法(fa)已經(jing)有一部分定義在了(le)組件(jian)內,所(suo)以程(cheng)(cheng)序(xu)(xu)(xu)(xu)員(yuan)不用(yong)寫多少代碼就可以完成(cheng)一個簡單(dan)的(de)(de)(de)(de)程(cheng)(cheng)序(xu)(xu)(xu)(xu)。過去的(de)(de)(de)(de)版本里面(mian) VB 程(cheng)(cheng)序(xu)(xu)(xu)(xu)的(de)(de)(de)(de)性能問題(ti)一直被放在了(le)桌面(mian)上,但是(shi)(shi)隨著(zhu)計算機速(su)度的(de)(de)(de)(de)飛速(su)增加(jia),關于(yu)(yu)性能的(de)(de)(de)(de)爭論(lun)已經(jing)越來越少。
窗(chuang)(chuang)體控(kong)件(jian)(jian)(jian)的(de)(de)(de)(de)增(zeng)加(jia)和(he)(he)改(gai)(gai)(gai)(gai)(gai)變可(ke)以(yi)用拖放技術實(shi)現(xian)。一個(ge)排列滿控(kong)件(jian)(jian)(jian)的(de)(de)(de)(de)工具箱用來(lai)顯(xian)示可(ke)用控(kong)件(jian)(jian)(jian)(比如文(wen)本框(kuang)或者按鈕)。每個(ge)控(kong)件(jian)(jian)(jian)都有自己的(de)(de)(de)(de)屬(shu)性(xing)和(he)(he)事(shi)件(jian)(jian)(jian)。默認的(de)(de)(de)(de)屬(shu)性(xing)值(zhi)會(hui)在控(kong)件(jian)(jian)(jian)創建的(de)(de)(de)(de)時候(hou)提(ti)供,但是程(cheng)序員(yuan)也可(ke)以(yi)進行更改(gai)(gai)(gai)(gai)(gai)。很多的(de)(de)(de)(de)屬(shu)性(xing)值(zhi)可(ke)以(yi)在運(yun)(yun)行時候(hou)隨(sui)著(zhu)用戶的(de)(de)(de)(de)動作和(he)(he)修改(gai)(gai)(gai)(gai)(gai)進行改(gai)(gai)(gai)(gai)(gai)動,這樣就(jiu)(jiu)形成了(le)一個(ge)動態的(de)(de)(de)(de)程(cheng)序。舉個(ge)例子來(lai)說(shuo):窗(chuang)(chuang)體的(de)(de)(de)(de)大(da)(da)小改(gai)(gai)(gai)(gai)(gai)變事(shi)件(jian)(jian)(jian)中(zhong)加(jia)入(ru)(ru)了(le)可(ke)以(yi)改(gai)(gai)(gai)(gai)(gai)變控(kong)件(jian)(jian)(jian)位置的(de)(de)(de)(de)代碼(ma)(ma),在運(yun)(yun)行時候(hou)每當用戶更改(gai)(gai)(gai)(gai)(gai)窗(chuang)(chuang)口大(da)(da)小,控(kong)件(jian)(jian)(jian)也會(hui)隨(sui)之(zhi)改(gai)(gai)(gai)(gai)(gai)變位置。在文(wen)本框(kuang)中(zhong)的(de)(de)(de)(de)文(wen)字(zi)改(gai)(gai)(gai)(gai)(gai)變事(shi)件(jian)(jian)(jian)中(zhong)加(jia)入(ru)(ru)相(xiang)應的(de)(de)(de)(de)代碼(ma)(ma),程(cheng)序就(jiu)(jiu)能夠在文(wen)字(zi)輸入(ru)(ru)的(de)(de)(de)(de)時候(hou)自動翻譯或者阻止某(mou)些字(zi)符的(de)(de)(de)(de)輸入(ru)(ru)。
VB 的(de)程序可以(yi)包含(han)一(yi)個(ge)或多個(ge)窗(chuang)體(ti),或者是一(yi)個(ge)主窗(chuang)體(ti)和多個(ge)子窗(chuang)體(ti),類(lei)似于操作系統的(de)樣子。有(you)很少(shao)功(gong)能(neng)的(de)對(dui)話(hua)框窗(chuang)口(比如沒有(you)最(zui)大化和最(zui)小化按鈕的(de)窗(chuang)體(ti))可以(yi)用來提供(gong)彈出(chu)功(gong)能(neng)。
VB 的(de)(de)組件既可以(yi)擁(yong)有用戶界(jie)面,也可以(yi)沒有。這樣一來服務(wu)器(qi)端程序就可以(yi)處(chu)理增加的(de)(de)模(mo)塊(kuai)。
VB 使用(yong)參數計算的(de)(de)方法來(lai)進行垃圾收(shou)集,這(zhe)(zhe)個方法中(zhong)包含有大(da)(da)量(liang)(liang)的(de)(de)對象(xiang),提供基本的(de)(de)面(mian)向(xiang)對象(xiang)支(zhi)持。因為(wei)越(yue)來(lai)越(yue)多(duo)組件的(de)(de)出現,程序員可以選用(yong)自(zi)己需(xu)要的(de)(de)擴(kuo)展(zhan)庫。和有些語(yu)言不(bu)一樣,VB 對大(da)(da)小(xiao)寫(xie)(xie)不(bu)敏感(gan),但是能自(zi)動(dong)轉換(huan)關(guan)鍵詞到(dao)標準的(de)(de)大(da)(da)小(xiao)寫(xie)(xie)狀態,以及強制使得符號表入口的(de)(de)實體(ti)的(de)(de)變量(liang)(liang)名稱(cheng)遵(zun)循(xun)書寫(xie)(xie)規(gui)則。默(mo)認(ren)情(qing)況下字符串(chuan)的(de)(de)比較是對大(da)(da)小(xiao)寫(xie)(xie)敏感(gan)的(de)(de),但是可以關(guan)閉這(zhe)(zhe)個功能。
VB 使得大量的(de)(de)外(wai)界控件(jian)(jian)有了(le)自(zi)己的(de)(de)生存空間(jian)。大量的(de)(de)第(di)三方(fang)控件(jian)(jian)針對VB提供。VB也提供了(le)建(jian)立、使用和(he)重用這些控件(jian)(jian)的(de)(de)方(fang)法,但是(shi)由于語言問題,從一(yi)個(ge)(ge)應用程(cheng)序創建(jian)另外(wai)一(yi)個(ge)(ge)并不簡單。
Visual Basic語言具有不支持繼承、無(wu)原生支持多線程、異(yi)常處理不完善等三項明(ming)顯(xian)缺點(dian),使其有所局限性(此些缺點(dian)皆已在(zai)vb.net獲(huo)得改進)。
不支持繼承
VB 5.0和VB 6.0都是(shi)基于對象的(de)編(bian)程(cheng)(cheng)語言,但(dan)是(shi)不(bu)包含(han)繼承特性。VB中提(ti)供了特殊的(de)類的(de)功(gong)能,但(dan)是(shi)還是(shi)不(bu)能滿足程(cheng)(cheng)序員的(de)需求。
無原生支持多線程
Visual Basic對于多(duo)線程(cheng)無原(yuan)生支持,只能通過Windows API的調用實現,且極其的不穩定。因為(wei)在API創建(jian)的線程(cheng)中,并(bing)沒有(you)自動(dong)初(chu)始(shi)化運行(xing)時庫,導致(zhi)部分的函數無法使(shi)(shi)用。一般的,在VB6等早期的VB開發環境(jing)下(xia),使(shi)(shi)用API創建(jian)線程(cheng)的目的是完成(cheng)容易使(shi)(shi)程(cheng)序假(jia)死的大量數據或者邏輯的計算。
異常處理不完善
Visual Basic中內(nei)置異(yi)常(chang)處理,即(ji)使未寫(xie)異(yi)常(chang)處理代碼,一旦(dan)用戶出錯也會彈出一個(ge)明確寫(xie)出出錯原因對(dui)話框(kuang),接著程序終止(zhi)。
Visual Basic中(zhong)可(ke)以使用(yong)Err.Raise拋(pao)出異常(chang)。對系(xi)統及用(yong)戶拋(pao)出的異常(chang)的處(chu)理常(chang)用(yong)兩種模(mo)式:一(yi)是使用(yong)On Error Resume Next處(chu)理錯誤(wu);另一(yi)種是使用(yong)On Error Goto將運行引入錯誤(wu)處(chu)理代碼。但相(xiang)對C++等語(yu)言(yan)而言(yan),這樣的異常(chang)處(chu)理破壞了(le)代碼的結構。
微軟(ruan)開發了一系列由 Visual Basic 所派生(sheng)的語言(yan):
VBA
Visual Basic for Applications(VBA):包含(han)在微(wei)軟的應(ying)用程序中(如Microsoft Office),以及類(lei)似(si)WordPerfect、Office這(zhe)樣第三方的產品(pin)里面。VBA這(zhe)樣嵌入在各種應(ying)用程序中看起(qi)來有些(xie)矛盾(dun),但是它的功能和VB一樣強大。
VBS
VBScript(VBS):是(shi)默認的(de)ASP語(yu)言,還可以用在Windows腳本(ben)編(bian)寫和網(wang)頁編(bian)碼中。盡管(guan)它(ta)的(de)語(yu)法類似(si)于VB,但是(shi)它(ta)卻是(shi)一(yi)種(zhong)完全不同的(de)語(yu)言。VBS不使(shi)用VB運(yun)行(xing)庫(ku)運(yun)行(xing),而是(shi)由Windows腳本(ben)主機解釋執行(xing)。這兩種(zhong)語(yu)言之中的(de)不同點影響(xiang)ASP網(wang)站的(de)表現。
vb.net
Visual Basic.net(vb.net):當微(wei)軟(ruan)(ruan)準備(bei)開發一(yi)種新(xin)的(de)(de)編(bian)(bian)程工具的(de)(de)時候(hou),第一(yi)決定就是利用VB 6.0來進行舊改,或者就是重新(xin)組建工程開發新(xin)工具。微(wei)軟(ruan)(ruan)后(hou)來開發了VB的(de)(de)繼任者Visual Basic.net,同時也是.net平臺(tai)的(de)(de)一(yi)部分。vb.net編(bian)(bian)程語言是一(yi)種真正的(de)(de)面向(xiang)對象編(bian)(bian)程語言,和VB并(bing)不完全兼容。
Visual Basic.net(vb.net) 是新(xin)一(yi)代(dai)的(de)VB語言,并(bing)不只是 VB 6.0 的(de)簡單升級,vb.net 與(yu) VB (泛(fan)指 VB 6.0 之(zhi)前(qian)的(de)版本) 之(zhi)間有非常大的(de)區別。其新(xin)特性主要(yao)表現在(zai)以下幾方面:
1.vb.net完全集成到Visual Studio集成開(kai)發環(huan)境中,在這種集成開(kai)發環(huan)境與VB在若干(gan)方(fang)面有差(cha)異。主要體現在窗(chuang)體的布局(ju)以及菜單等方(fang)面都有所不同(tong)
2.vb.net項(xiang)目(mu)與VB不(bu)同。它(ta)使用基于文(wen)件夾的模(mo)型(xing),所有(you)項(xiang)目(mu)均放置(zhi)在項(xiang)目(mu)文(wen)件夾層次結構中。
3.vb.net中使用(yong)ado.net來訪問數據(ju)庫,ado.net是(shi).netFramework的一部分。在(zai)vb.net中實現(xian)數據(ju)訪問的方法(fa)主要有兩種:其一是(shi)在(zai)程序設計階段(duan),通過創建、配(pei)置數據(ju)適(shi)配(pei)器DataAdapter和生(sheng)成(cheng)數據(ju)集DataSet;其二是(shi)在(zai)運行中,通過編程方式動態創建配(pei)置數據(ju)適(shi)配(pei)器和創建、生(sheng)成(cheng)數據(ju)集。
4.在vb.net中(zhong)是(shi)使(shi)(shi)用(yong)asp.net技術來編寫Web頁面(mian)的。在asp.net中(zhong)使(shi)(shi)用(yong)的也(ye)不是(shi)腳(jiao)本語(yu)言,而是(shi)真正意義的編程(cheng)語(yu)言。憑(ping)借asp.net的Web應用(yong)程(cheng)序、XML Web Services等基于(yu)Web的功能,使(shi)(shi)得 vb.net 開發 Web 頁面(mian)與開發Windows 應用(yong)程(cheng)序很相似,Web頁面(mian)代碼也(ye)顯得有(you)條有(you)理(li)了。
5.vb.net已經(jing)成為(wei)完(wan)全的面向對象的編程語言,并且新增更多語言特性。
Visual Basic.net有提供轉換精靈,協助開發者將VB 6.0的程(cheng)序(xu)代碼轉換為vb.net相(xiang)對應之程(cheng)序(xu)代碼。
制(zhi)作(zuo)應(ying)用程序安(an)裝盤(pan)等為用戶(hu)提供了友(you)好的(de)集成開發環境,具體表(biao)現在:
可(ke)(ke)視化(hua)的(de)(de)(de)設(she)(she)計(ji)(ji)平臺(tai):在(zai)使用(yong)傳統的(de)(de)(de)程(cheng)(cheng)(cheng)序(xu)設(she)(she)計(ji)(ji)語(yu)言編(bian)程(cheng)(cheng)(cheng)時(shi),一般需要通過編(bian)寫程(cheng)(cheng)(cheng)序(xu)來設(she)(she)計(ji)(ji)應用(yong)程(cheng)(cheng)(cheng)序(xu)的(de)(de)(de)界面(如(ru)界面的(de)(de)(de)外觀和(he)位(wei)置等),在(zai)設(she)(she)計(ji)(ji)過程(cheng)(cheng)(cheng)中看不(bu)見界面的(de)(de)(de)實際效(xiao)果。而在(zai)Visual Basic 6.0中,采用(yong)面向對(dui)(dui)(dui)象(xiang)程(cheng)(cheng)(cheng)序(xu)設(she)(she)計(ji)(ji)方法(Object-Oriented Programming),把(ba)程(cheng)(cheng)(cheng)序(xu)和(he)數據封裝起來作(zuo)為(wei)一個對(dui)(dui)(dui)象(xiang),每(mei)(mei)個對(dui)(dui)(dui)象(xiang)都是(shi)可(ke)(ke)視的(de)(de)(de)。開(kai)發人員(yuan)在(zai)界面設(she)(she)計(ji)(ji)時(shi),可(ke)(ke)以直接用(yong)Visual Basic 6.0的(de)(de)(de)工具箱在(zai)屏(ping)幕上"畫"出窗(chuang)口、菜(cai)單、命(ming)令按鍵等不(bu)同類型的(de)(de)(de)對(dui)(dui)(dui)象(xiang),并為(wei)每(mei)(mei)個對(dui)(dui)(dui)象(xiang)設(she)(she)置屬性。開(kai)發人員(yuan)要做的(de)(de)(de)僅僅是(shi)對(dui)(dui)(dui)要完成事件(jian)過程(cheng)(cheng)(cheng)的(de)(de)(de)對(dui)(dui)(dui)象(xiang)進行編(bian)寫代碼,因而程(cheng)(cheng)(cheng)序(xu)設(she)(she)計(ji)(ji)的(de)(de)(de)效(xiao)率可(ke)(ke)大(da)大(da)提高。
事件(jian)驅(qu)動(dong)(dong)(dong)的編程(cheng)(cheng)(cheng)(cheng)機制:面(mian)向過(guo)程(cheng)(cheng)(cheng)(cheng)的程(cheng)(cheng)(cheng)(cheng)序(xu)是(shi)由(you)一(yi)個(ge)(ge)主程(cheng)(cheng)(cheng)(cheng)序(xu)和若干個(ge)(ge)子程(cheng)(cheng)(cheng)(cheng)序(xu)及函數組成的。程(cheng)(cheng)(cheng)(cheng)序(xu)運(yun)行(xing)時總是(shi)先從主程(cheng)(cheng)(cheng)(cheng)序(xu)開(kai)始,由(you)主程(cheng)(cheng)(cheng)(cheng)序(xu)調用子程(cheng)(cheng)(cheng)(cheng)序(xu)和函數,開(kai)發人員在編程(cheng)(cheng)(cheng)(cheng)時必須事先確定整個(ge)(ge)程(cheng)(cheng)(cheng)(cheng)序(xu)的執(zhi)行(xing)順序(xu)。而Visual Basic 6.0事件(jian)驅(qu)動(dong)(dong)(dong)的編程(cheng)(cheng)(cheng)(cheng)是(shi)針對(dui)用戶觸發某(mou)個(ge)(ge)對(dui)象的相關事件(jian)進行(xing)編碼(ma)(ma),每個(ge)(ge)事件(jian)都可以驅(qu)動(dong)(dong)(dong)一(yi)段程(cheng)(cheng)(cheng)(cheng)序(xu)的運(yun)行(xing)。開(kai)發人員只要編寫響應用戶動(dong)(dong)(dong)作的代碼(ma)(ma)。這樣(yang)的應用程(cheng)(cheng)(cheng)(cheng)序(xu)代碼(ma)(ma)精簡,比較(jiao)容易編寫與維(wei)護。
結(jie)構(gou)(gou)化的程(cheng)(cheng)序(xu)設計語言(yan):Visual Basic 6.0具有豐富的數(shu)據類型和(he)(he)眾(zhong)多的內部函數(shu)。其采(cai)用模塊化和(he)(he)結(jie)構(gou)(gou)化程(cheng)(cheng)序(xu)設計語言(yan),結(jie)構(gou)(gou)清晰,語法簡單,容(rong)易學(xue)習。
強大的數據(ju)庫(ku)功能(neng):Visual Basic 6.0利用數據(ju)控件可以(yi)訪(fang)問Access、FoxPro等多(duo)種數據(ju)庫(ku)系(xi)統,也可以(yi)訪(fang)問Excel、Lotus等多(duo)種電子表格。
ActiveX技術:ActiveX發(fa)展(zhan)了原有的(de)OLE技術,使(shi)開發(fa)人員擺(bai)脫了特定語言的(de)束縛,方便地(di)使(shi)用(yong)(yong)其他應(ying)用(yong)(yong)程(cheng)序(xu)(xu)提供的(de)功能,使(shi)Visual Basic 6.0能夠開發(fa)集(ji)聲音、圖像、動畫、字處理(li)、電(dian)子表(biao)格、Web等(deng)對象于一體的(de)應(ying)用(yong)(yong)程(cheng)序(xu)(xu)。
網絡功能:Visual Basic 6.0提供的DHTML(動(dong)態HTML)設計工具(ju)可(ke)以使開(kai)發者動(dong)態地創建和編輯(ji)Web頁面,使用戶能開(kai)發出(chu)多功能的網絡應用軟件。