vb.net程序員手冊(cè) vbnet web編程

我想學(xué)習(xí)編程,但我很菜,不知道從什么學(xué)起

你好朋友,不要聽8樓匿名者的一派胡言,都是從網(wǎng)上摘抄的,下面這篇文章是我的原創(chuàng),應(yīng)該對(duì)你有所幫助。

成都創(chuàng)新互聯(lián)服務(wù)項(xiàng)目包括黔江網(wǎng)站建設(shè)、黔江網(wǎng)站制作、黔江網(wǎng)頁(yè)制作以及黔江網(wǎng)絡(luò)營(yíng)銷策劃等。多年來(lái),我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,黔江網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到黔江省份的部分城市,未來(lái)相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!

你既然喜歡編程,就應(yīng)該認(rèn)認(rèn)真真的學(xué)習(xí)一門語(yǔ)言,先從VB開始,VB是比較好的入門語(yǔ)言,可視化的,比較簡(jiǎn)單,是非常好的入門語(yǔ)言。書籍最少應(yīng)該準(zhǔn)備兩本,不可能一本書籍會(huì)包含VB的所有內(nèi)容,在看書的時(shí)候,可以交叉的看,一本書籍中沒(méi)有講到的內(nèi)容可以在另一本中看到,這樣對(duì)學(xué)習(xí)是很有好處的,也能保證所學(xué)知識(shí)的完整性。學(xué)編程是一個(gè)很漫長(zhǎng)的過(guò)程,不要著急,要理論與實(shí)踐想結(jié)合,例程書籍也是很重要的,看源代碼對(duì)學(xué)習(xí)也是很有幫助的,等你學(xué)完這門VB語(yǔ)言之后,學(xué)習(xí)別的語(yǔ)言是非常簡(jiǎn)單,可以嘗試C語(yǔ)言,按照C——C++——VC的順序?qū)W習(xí),有助于知識(shí)的連貫性,我也希望你能學(xué)好的。

學(xué)習(xí)C語(yǔ)言,譚浩強(qiáng)的《C程序設(shè)計(jì)》是一部非常好的C語(yǔ)言書籍,學(xué)習(xí)程序設(shè)計(jì)是一個(gè)非常漫長(zhǎng)的過(guò)程,不要著急,一本書多看兩遍三遍,學(xué)會(huì)交叉學(xué)習(xí)法,在學(xué)習(xí)C的過(guò)程中,可以看看數(shù)據(jù)結(jié)構(gòu),編譯原理,操作系統(tǒng)等書籍,對(duì)編成都是很有幫助的。最開始學(xué)習(xí)的時(shí)候,先不要編一些比較大的程序,多編一些小程序,比如數(shù)組運(yùn)算,字符組合等等,指針是C語(yǔ)言的精華,是比較復(fù)雜的部分。如果有一天你能熟練駕馭指針的操作了,我相信你,你一定能學(xué)習(xí)好C語(yǔ)言的。

我是2001年接觸編程的,剛開始只是大概了解一下,并沒(méi)有進(jìn)行比較深入的學(xué)習(xí),我是從VB開始入門的,學(xué)了1年多,然后轉(zhuǎn)入C語(yǔ)言,按照C——C++——VC的順序?qū)W習(xí),C學(xué)了兩年,現(xiàn)在開始學(xué)習(xí)C++,C++的學(xué)習(xí)是很有難度的,類,標(biāo)準(zhǔn)庫(kù),多態(tài),繼承等等比較抽象難道懂的概念,雖然他秉承了C語(yǔ)言的風(fēng)格,但是有很多很多是C語(yǔ)言不具備的,要多看書,上機(jī)實(shí)踐也是必不可少的?!禖++編程思想》,《C++標(biāo)準(zhǔn)庫(kù)》,這些書都非常好,內(nèi)容也很全面,例程書籍也是必不可少的,多看源代碼對(duì)編程是很有幫助的,也會(huì)少走很多彎路??傊?,C++的學(xué)習(xí)是一個(gè)比較漫長(zhǎng)的過(guò)程,大概需要兩年的時(shí)間,這只是底限,如果想學(xué)通,學(xué)精,還需要更多的時(shí)間。

我向你推薦一些C++經(jīng)典書籍:

c++程序設(shè)計(jì)教程

c++編程思想

c++大學(xué)教程

c++程序設(shè)計(jì)語(yǔ)言

數(shù)據(jù)結(jié)構(gòu)算法與應(yīng)用c++語(yǔ)言描述

c++標(biāo)準(zhǔn)模板庫(kù)------自修教程與參考手冊(cè)

泛型編程與STL

深度探索c++對(duì)象模型

設(shè)計(jì)模式---可復(fù)用面向?qū)ο筌浖幕A(chǔ)

重構(gòu)---改善既有代碼的設(shè)計(jì)

Essential c++

Effective c++

More Effctive c++

C++ primer

前五本應(yīng)該屬于入門書籍,后面的屬于學(xué)習(xí)難度比較大的,想提高C++的編程能力,看看這些書籍有好處。建議你把編程思想這本書多看看。多做練習(xí)題,對(duì)提高編程水平的幫助是很大的。

其實(shí)語(yǔ)言是相通的,一門語(yǔ)言學(xué)會(huì)了,學(xué)習(xí)其他語(yǔ)言就比較容易了。

業(yè)界有這樣一種說(shuō)法,因?yàn)镴AVA這門語(yǔ)言包含了C++的一些特性,掌握了C++,就等于掌握了JAVA的80%,

在掌握了C++之后(我說(shuō)的掌握指的是,可以熟練用C++編程序了,并沒(méi)有要求你完全掌握C++的所有部分,沒(méi)有人能達(dá)到這一點(diǎn),因?yàn)镃++太龐大了,如果能堅(jiān)持不懈的學(xué)習(xí)C++兩年到三年的時(shí)間了,你就可以學(xué)習(xí)其他的語(yǔ)言了)可以試著學(xué)習(xí)一些其他的語(yǔ)言,如JAVA,VC++等等比較復(fù)雜的語(yǔ)言.

這時(shí)候可以說(shuō)你已經(jīng)對(duì)程序設(shè)計(jì)語(yǔ)言有個(gè)大體的認(rèn)識(shí)了,可以明確自己學(xué)習(xí)的方向,根據(jù)自己的學(xué)習(xí)情況而定,是學(xué)習(xí)一些自己比較感興趣的語(yǔ)言啊(從興趣出發(fā)),還是為了找工作啊,開始進(jìn)行更深入的學(xué)習(xí).比如學(xué)習(xí)windows下的框架編程和.net編程等等比較復(fù)雜的語(yǔ)言.

如果是為了找工作的話我建議你學(xué)好C,C++,JAVA三門語(yǔ)言.

在我國(guó)目前的軟件開發(fā)行業(yè)中,北方C,C++,JAVA的需求量是非常大的.南方以VB為主.

關(guān)于英語(yǔ)對(duì)學(xué)習(xí)程序設(shè)計(jì)有沒(méi)有幫助的文章這個(gè)話題已經(jīng)有很多人議論過(guò)了,我個(gè)人建議把計(jì)算機(jī)專業(yè)術(shù)語(yǔ)弄明白了就可以了,你可以買一本計(jì)算機(jī)英語(yǔ)教程看一看,對(duì)程序設(shè)計(jì)是有幫助的。其實(shí)程序設(shè)計(jì)當(dāng)中的英文都是一些非常簡(jiǎn)單的,如for,else,while.......并沒(méi)有太高深的,而且學(xué)習(xí)程序設(shè)計(jì)不像學(xué)習(xí)網(wǎng)絡(luò),如CCNA這類認(rèn)證需要掌握大量的英文。但是在學(xué)習(xí)程序設(shè)計(jì)的時(shí)候身邊有兩個(gè)工具應(yīng)該足夠了-----------金山詞霸,計(jì)算機(jī)詞典。相信你一定能學(xué)好程序設(shè)計(jì)的。

學(xué)習(xí)數(shù)學(xué)和學(xué)習(xí)程序設(shè)計(jì)有一個(gè)共同點(diǎn)------鍛煉邏輯思維能力。在程序設(shè)計(jì)的學(xué)習(xí)中涉及到數(shù)學(xué)的地方并不多,所以也沒(méi)有必要去認(rèn)真的學(xué)習(xí)數(shù)學(xué)也可以學(xué)好程序設(shè)計(jì)的。

如果你是一個(gè)肯吃苦,肯用心學(xué)習(xí)程序設(shè)計(jì)的人,具有堅(jiān)持不懈的精神的人,我相信,只要你認(rèn)認(rèn)真真去學(xué),即使你的英語(yǔ)數(shù)學(xué)水平再差,你也一定能夠?qū)W好程序設(shè)計(jì)的。

我是一名大三的學(xué)生,我也正在學(xué)習(xí)C++這門語(yǔ)言,一年多的時(shí)間,學(xué)習(xí)的感覺(jué)真的很累的,希望能和你成為朋友!

好了,說(shuō)了這么多,可以參考一下,為自己做個(gè)學(xué)習(xí)計(jì)劃,要對(duì)自己有信心,最后祝你在學(xué)習(xí)編程的道路上走的更好更遠(yuǎn),祝你學(xué)有所成!!

我的QQ:261174630

有沒(méi)有人能詳細(xì)的說(shuō)明vb.net 的特點(diǎn),優(yōu)缺點(diǎn)及應(yīng)用領(lǐng)域?最好也舉個(gè)運(yùn)用VB.NET的例子??!

Visual Basic .NET Visual Basic.NET是基于微軟.NET Framework之上的面向?qū)ο蟮闹虚g解釋性語(yǔ)言,可以看作是Visual Basic在.Net Framework平臺(tái)上的升級(jí)版本,增強(qiáng)了對(duì)面向?qū)ο蟮闹С?。但由于改?dòng)太大,導(dǎo)致VB.net對(duì)VB的向后兼容性不好,在業(yè)界引起不小的爭(zhēng)議。 大多的VB.Net程序員使用Visual Studio .Net作為IDE(integrated development environment). SharpDevelop是另一種可用的開源的IDE。VB.Net需要在.Net Framework平臺(tái)上才能執(zhí)行。 VB.NET的主頁(yè) 1 目前版本 2005年9月以來(lái),存在三種不同版本的Visual Basic .NET. 1 Visual Basic .NET:是隨vc#和ASP.NET一起在2002年發(fā)布的最初始的VB.net版本。C#被大力宣傳為微軟對(duì)付JAVA的王牌,受到媒體極力關(guān)注。然而VB.NET(有時(shí)被稱為VB7)影響面不廣,這導(dǎo)致VB社區(qū)之外很少人關(guān)注它。那些試用過(guò)此版VB.NET的人在層層幕布下發(fā)現(xiàn)一個(gè)強(qiáng)大卻艱深的語(yǔ)言,而且還有不少弱點(diǎn),比如它比VB6來(lái)有一個(gè)大了十倍的進(jìn)行時(shí)(RunTime),內(nèi)存footprint也大大增加。 2 Visual Basic .NET 2003:是和.NET Framework 1.1一起發(fā)布的。新功能包括對(duì).NET Compact Framework的支持和更好的VB升遷向?qū)А2⒏倪M(jìn)了運(yùn)行狀況,IDE穩(wěn)定性(尤其是后臺(tái)編譯器),以及運(yùn)行時(shí)RunTime穩(wěn)定性。另外,VB.NET 2003還有一個(gè)學(xué)院版Visual Studio .NET 2003 Academic Edition (VS03AE),它是分發(fā)給各國(guó)某些學(xué)者免費(fèi)使用的版本。 3 Visual Basic 2005:VB2005是VB.Net的重大轉(zhuǎn)變,微軟決意在其軟件名稱中去掉了.NET部份。在VB2005中,微軟增加了許多新功能,以引用VB對(duì)于初學(xué)者來(lái)說(shuō)的一些優(yōu)點(diǎn): A, Edit and Continue - 也許是從VB那里丟掉的最大的功能,允許代碼的編輯和執(zhí)行立即的執(zhí)行恢復(fù)。 B, Design-time expression evaluation C, My偽命名空間,提供了訪問(wèn).NET Framework特定域的不需大量編碼的簡(jiǎn)單方式;還能動(dòng)態(tài)產(chǎn)生類(顯然的是My.Forms);提供了改進(jìn)的VB到VB.NET轉(zhuǎn)換向?qū)?;Using 語(yǔ)法,簡(jiǎn)化了需要部署pattern to free resources的對(duì)象的使用;My編碼,可隱藏由VB.NET IDE寫的模板代碼;數(shù)據(jù)源綁定,簡(jiǎn)化了數(shù)據(jù)庫(kù)C/S開發(fā) 上述功能(尤其是My)增強(qiáng)了VB.Net成為快速開發(fā)應(yīng)用平臺(tái)的可能,并與C#進(jìn)一步區(qū)別開來(lái)。參見: 使用My開發(fā) 通過(guò)My命名空間訪問(wèn).NET Framework 和項(xiàng)目 Visual Basic 2005 通過(guò)增加新功能而填補(bǔ)了和其它所謂更強(qiáng)大的.NET語(yǔ)言的差距。 A, 增加了.NET 2.0語(yǔ)言功能包括:generics和Partial類(在一個(gè)文件里定義一個(gè)類的某部份然后再添加更多的定義,這個(gè)方法在整合用戶編碼和系統(tǒng)自動(dòng)生成編碼時(shí)尤其有用)。 B, XML注釋,可以被NDoc等工具處理而自動(dòng)生成文檔 C, operator overloading D, 支持在其它語(yǔ)言中已經(jīng)廣泛使用的unsigned integer數(shù)據(jù)類型。 E, 支持在許多C衍生編程語(yǔ)言已提供的復(fù)合操作符如:"+=", "-=" 4, IsNot專利:If Not X Is Y表達(dá)式被轉(zhuǎn)換成If X IsNot Y。當(dāng)微軟為IsNot申請(qǐng)專利時(shí)招致了惡名(尤其來(lái)自Real公司)。 5, Visual Basic 2005 Express:作為VS產(chǎn)品線上的一部份,VB2005 Express是專為業(yè)余愛(ài)好者和新手定制的免費(fèi)的VS Express系列的一員。Express版本目的定位在幫助人們學(xué)習(xí)一種語(yǔ)言,所以他們有和標(biāo)準(zhǔn)版一致的用戶界面,只是少了一些高級(jí)功能。另外,VS 查看更多答案

記得采納啊

VB.NET中的動(dòng)態(tài)代碼生成技巧

本文的討論也將著眼于這兩種情況 首先是當(dāng)程序員需要?jiǎng)討B(tài)建立一個(gè)控件并將代碼附著于控件之上時(shí) 例如 你或許想創(chuàng)建一個(gè)鏈接列表 但是不知道需要?jiǎng)?chuàng)建鏈接的數(shù)量或是鏈接中會(huì)出現(xiàn)什么樣的數(shù)據(jù) 第二種是當(dāng)程序員需要定義代碼以反映出特殊需求的時(shí)候 例如 你或許要執(zhí)行能反映用戶系統(tǒng)配置的代碼

類似上述的情況當(dāng)然不會(huì)每天都上演 事實(shí)上 它們只在非常情況下才出現(xiàn) 然而 作為程序員 仍然要意識(shí)到 NET為解決動(dòng)態(tài)情形提供了方案 有了正確的技巧 你就可以寫出能靈活處理動(dòng)態(tài)情況的應(yīng)用程序了

使用動(dòng)態(tài)控件

許多程序員總會(huì)遇到需要?jiǎng)討B(tài)創(chuàng)建控件的時(shí)候 我們所展示的例子中程序員向FlowLayoutPanel中添加了LinkLabels 或許你可以個(gè)這樣的設(shè)置來(lái)記錄和保存常用的URL 文件 網(wǎng)絡(luò)地址或是其他資源所在位置的數(shù)值 這一示例沒(méi)有真正保存鏈接 但是你可以使用XML序列化功能來(lái)實(shí)現(xiàn)保存

每次當(dāng)用戶點(diǎn)擊Test按鈕時(shí) 示例代碼就會(huì)動(dòng)態(tài)創(chuàng)建一個(gè)新的LinkLabel控件 真正的演示代碼并不復(fù)雜 例一就展示了創(chuàng)建這類控件以及將控件放入FlowLayoutPanel lstLabel中通常所需要做的一切

例一 向FlowLayoutPanel中添加新的鏈接 ?Private Sub btnTest_Click() Handles btnTest Click   Create a link  Dim NewLink As LinkLabel =New LinkLabel()   Add some properties to it  NewLink Text = DateTime Now  ToLongTimeString()   Set the click event handler  AddHandler NewLink Click  AddressOf NewLink_Click   Place the button on the form  lstLinks Controls Add(NewLink) End Sub

如你所料 該代碼開始的時(shí)候創(chuàng)建了一個(gè)新的LinkLabel并為其賦予了一些值 這一示例使用的是當(dāng)前時(shí)間 你的代碼或許能夠?qū)δ骋徽鎸?shí)資源進(jìn)行訪問(wèn)

請(qǐng)注意該代碼也向鏈接的Click事件中指定了一個(gè)處理程序 你必須使用示例中的AddHandler技巧 因?yàn)槠胀ǖ腍andles關(guān)鍵詞路徑不起作用 一方面 設(shè)計(jì)應(yīng)用程序的時(shí)候你并不清楚控件的名稱 即便你為控件指定了一個(gè)名稱 你也不知道用戶要?jiǎng)?chuàng)建的控件數(shù)量 所以我們沒(méi)有辦法清楚會(huì)有多少處理程序會(huì)被創(chuàng)建 處理程序的代碼與控件代碼類似 因此沒(méi)有必要?jiǎng)?chuàng)建多個(gè)處理程序 用于這個(gè)示例的處理代碼見例二 例二 處理動(dòng)態(tài)控件點(diǎn)擊事件 ?Private Sub NewLink_Click( _ ByVal sender As System Object  ByVal e As System EventArgs)  Verify that you actually have a LinkLabelIf Not sender GetType() Is GetType(LinkLabel) ThenMessageBox Show( Wrong control type provided! )ReturnEnd If  Convert the input sender to a Button Dim ThisLink As LinkLabel = sender   Show that we have the correct button MessageBox Show( You created this link at:   + ThisLink Text)End Sub 

你可能已經(jīng)注意到例一中的事件處理器使用的是寬松代表——它沒(méi)有將ByVal發(fā)送器作為System Object 也沒(méi)有將ByVal e作為System EventArgs作為參數(shù)因?yàn)樗恍枰@二者 然而 當(dāng)你創(chuàng)建一個(gè)事件處理器來(lái)動(dòng)態(tài)創(chuàng)建控件時(shí) 通常你需要將ByVal發(fā)送器作為System Object參數(shù) 這意味著將這兩者都包含其中

有些程序員在創(chuàng)建事件處理器的時(shí)候會(huì)出現(xiàn)一個(gè)錯(cuò)誤 即沒(méi)有檢查傳入控件的類型 發(fā)送器對(duì)象可能包含多選擇 而如果未對(duì)事件處理器進(jìn)行事件處理類型的設(shè)置 那么你就會(huì)面臨更多的選擇 我們的示例代碼一開始就檢查了傳入控件對(duì)象的類型 這樣以來(lái)發(fā)送器就不會(huì)像下面所展示的代碼一樣 ?Private Sub btnTest _Click() Handles btnTest Click   Create a link Dim NewButton As Button = New Button()  Add some properties to it NewButton Text = DateTime Now ToLongTimeString()  Set the click event handler AddHandler NewButton Click  AddressOf NewLink_Click  Place the button on the form lstLinks Controls Add(NewButton)End Sub 

此代碼在FlowLayoutPanel中創(chuàng)建了一個(gè)按鈕 大多數(shù)情況下這都能正常運(yùn)行 除非事件處理器不按照按鈕所示的進(jìn)行操作 如果你打算服務(wù)多個(gè)控件類型 那么每個(gè)控件類型都需要一個(gè)獨(dú)特的處理 你可以使用多事件處理器或者為某些類型提供選擇標(biāo)準(zhǔn)

NewLink_Click()事件處理器照常將傳入發(fā)送器轉(zhuǎn)換成指定類型 在這個(gè)示例中則是LinkLabel 該代碼可以訪問(wèn)LinkLabel屬性并能用其他方式進(jìn)行互動(dòng) 在我們的示例中 只顯示了一個(gè)能在創(chuàng)建鏈接的時(shí)候告知我們的對(duì)話框

使用動(dòng)態(tài)代碼

在運(yùn)行時(shí)創(chuàng)建一個(gè)控件是在無(wú)法確定應(yīng)用程序功能的時(shí)候采取的一種策略 但是動(dòng)態(tài)創(chuàng)建控件并不適用于所有的情況 有些時(shí)候你必須建立可執(zhí)行代碼 雖然你的應(yīng)用程序運(yùn)行的目的是補(bǔ)償不同極其之間的配置 不同用戶的需求 不同的環(huán)境需求或是其他要求 當(dāng)應(yīng)用程序所運(yùn)行的電腦不存在控件 那么通常是需要?jiǎng)?chuàng)建動(dòng)態(tài)代碼的

幸運(yùn)的是 NET為我們提供了一系列動(dòng)態(tài)代碼選項(xiàng) 例如 你可以創(chuàng)建一個(gè)可執(zhí)行的能獨(dú)立運(yùn)行的程序或是可以想運(yùn)行中的程序加載一個(gè)DLL然后再執(zhí)行 當(dāng)你需要演示一個(gè)外部任務(wù)的時(shí)候可以使用選擇可執(zhí)行 如運(yùn)行一種腳本——該DLL選項(xiàng)最適合擴(kuò)大現(xiàn)有的應(yīng)用程序功能

你可以運(yùn)行來(lái)自文件或內(nèi)存的動(dòng)態(tài)代碼 當(dāng)你需要不止一次地運(yùn)行代碼時(shí) 可以使用文件 對(duì)代碼的檢查可以再次運(yùn)行外部文件而不需要對(duì)其進(jìn)行二次編譯 當(dāng)你需要多次演示任務(wù)的時(shí)候 如一個(gè)安裝請(qǐng)求 那可以使用內(nèi)存圖像

當(dāng)然我們也可以更改源代碼 例如 你可以使用字符串來(lái)建立需要在應(yīng)用程序中直接使用的代碼 如果你需要代碼具有高度靈活性 且代碼本身不是很長(zhǎng)時(shí) 這一方法的優(yōu)勢(shì)就非常顯著 也可以從文件里建立代碼 就如同VS一樣 這一方法最適用于相對(duì)穩(wěn)定且不需要復(fù)雜編碼的需求 第三種選擇是使用Documentation Object Model來(lái)創(chuàng)建代碼并將其作為CodeDom樹型結(jié)構(gòu)的一個(gè)系列 該樹型結(jié)構(gòu)包括了CodeCormpileUnits 這就像是用DOM模式創(chuàng)建了一個(gè)XML文件

使用動(dòng)態(tài)創(chuàng)建代碼的最好方式是用示例來(lái)檢查一下 例三展示了一個(gè)基本 Hello World 示例 該示例用源代碼直接創(chuàng)建了代碼因此你可以看到整個(gè)運(yùn)行以及生成一個(gè)外部可執(zhí)行文件的過(guò)程

例三 動(dòng)態(tài)編碼示例 ?Private Sub btnTest _Click() Handles btnTest Click   Create a piler Dim Comp As VBCodeProvider = New VBCodeProvider()  Define the parameters for the code you want to pile Dim Parms As CompilerParameters = New CompilerParameters)   We do want to create an executable  rather than a DLL Parms GenerateExecutable = True   The piler will create an output assembly called Output Parms OutputAssembly =  Output    The piler won t treat warnings as errors Parms TreatWarningsAsErrors = False   Add any assembly you want to reference Parms ReferencedAssemblies Add( System Windows Forms dll )   Define the code you want to run  Dim SampleCode As StringBuilder = New StringBuilder() SampleCode Append( Imports System Windows Forms  + vbCrLf) SampleCode Append( Module TestAssembly  + vbCrLf) SampleCode Append( Sub Main()  + vbCrLf) SampleCode Append( MessageBox Show(  + Chr( ) + _ Dynamically Created Code!  + _Chr( ) +  )  + vbCrLf)SampleCode Append( End Sub  + vbCrLf)SampleCode Append( End Module  + vbCrLf)  Define the code to run Dim Executable As CompilerResults = _ Comp CompileAssemblyFromSource(Parms  SampleCode ToString())  Display error messages if there are any If Executable Errors HasErrors ThenFor Each Item As CompilerError In Executable ErrorsMessageBox Show(Item ErrorText)NextElse  If there aren t any error messages  start the  executable Process Start( Output )End IfEnd Sub 

一開始你創(chuàng)建了一個(gè)使用VBCodeProvider的編譯器Comp 舊一點(diǎn)的 NET版本使用的是不同的方法但是這里所講的是微軟推薦的一個(gè)新方法

為了使用編譯器 你必須創(chuàng)建能描述應(yīng)用程序的參數(shù) 這些參數(shù)類似于VS中你創(chuàng)建的參數(shù) 只是現(xiàn)在你可以對(duì)它們進(jìn)行定義 該代碼一開始就將GenerateExecutable設(shè)置為True 這意味著你需要的是一個(gè)EXE文件而不是DLL

Parms OutputAssembly屬性包含了輸出文件的名稱 你只需要在想創(chuàng)建文件時(shí)提供這一信息即可 而不需要生成可執(zhí)行內(nèi)存了 如果你ixiang生成可執(zhí)行文件的內(nèi)存版本 可以將Parm GenerateInMemory屬性設(shè)置為True

使用Parm TreatWarningsAsErrors屬性來(lái)確定如何處理警告信息 默認(rèn)的設(shè)置會(huì)使其為錯(cuò)誤 這意味著你的應(yīng)用程序可能無(wú)法對(duì)其進(jìn)行編譯 大多數(shù)程序員使用默認(rèn)設(shè)置 盡管他們開發(fā)了程序 但是在開發(fā)完成的程序中卻將其設(shè)置為False

大多數(shù)應(yīng)用程序需要外部DLL以正常運(yùn)行 當(dāng)然 你不能創(chuàng)建任意的沒(méi)有引用外部DLL的Windows表單程序 通常 你要使用Reference文件夾來(lái)完成這一任務(wù) 不過(guò) 當(dāng)你動(dòng)態(tài)創(chuàng)建代碼的時(shí)候可以依賴于Parms ReferencedAssemblies屬性 如下所示 只需添加你要的DLL即可

現(xiàn)在 你已經(jīng)定義了項(xiàng)目 接下來(lái)需要為其創(chuàng)建源代碼 如前文所述 你可以依賴于一個(gè)外部文件或DOM模式 然后 該示例創(chuàng)建了代碼因此你可以看到整個(gè)過(guò)程 下面是代碼的原始形式 ?Imports System Windows Forms Module TestAssemblySub Main()MessageBox Show( Dynamically Created Code! )End SubEnd Module 

這個(gè)簡(jiǎn)單的例子顯示了一個(gè)對(duì)話框 注意vbCrLf的使用 如果你不使用這一方法 那編譯器會(huì)發(fā)送給你一個(gè)錯(cuò)誤信息 vbCrLf條目在該代碼中所起的作用與在程序代碼中的作用相同 只是添加的方式不一樣

從這一點(diǎn)老說(shuō) 你最后會(huì)用Comp CompileAsseblyFromSource()方法編譯代碼 當(dāng)使用DOM模式和文件的時(shí)候可以使用這一方法 而在所有三種情況中 編譯器用參數(shù)和源代碼創(chuàng)建了你請(qǐng)求的輸出 該運(yùn)算的輸出出現(xiàn)在Executable中 是CompilerResults類型

編譯的失敗次數(shù)多于程序員的預(yù)計(jì) 無(wú)論你是在哪里使用動(dòng)態(tài)編碼技巧 你必須假設(shè)會(huì)出現(xiàn)失敗的情況以及處理失敗的方案 在本例中 代碼尋找的是錯(cuò)誤并在編譯失敗時(shí)將其展示在了信息框中 否則 代碼會(huì)依賴于Process Start()方法來(lái)啟用可執(zhí)行文件

底線

動(dòng)態(tài)編碼技巧并不是萬(wàn)能鑰匙 當(dāng)你為開發(fā)問(wèn)題找到了好的靜態(tài)解決方案時(shí) 當(dāng)然也可以使用 但是在我們所列出的情況中沒(méi)有可行的靜態(tài)方案 因此要選擇動(dòng)態(tài)編碼技巧 大多數(shù)情況下 要用動(dòng)態(tài)編碼技巧解決以下問(wèn)題

◆ 用戶的環(huán)境會(huì)以不可預(yù)見的方式更改時(shí)

◆ 無(wú)法控制用戶電腦的安裝

◆ 用戶或應(yīng)用程序都添加了你要用控件執(zhí)行的數(shù)據(jù)要素

◆ 應(yīng)用程序必須執(zhí)行很早以前的安裝任務(wù) 且這些任務(wù)與電腦 環(huán)境 網(wǎng)絡(luò)或其他不確定因素聯(lián)系緊密時(shí)

◆ 應(yīng)用程序要執(zhí)行了處理級(jí)別的任務(wù) 且這些任務(wù)取決于機(jī)器連接或其他狀況

lishixinzhi/Article/program/ASP/201311/21812

VB程序設(shè)計(jì)一般的四個(gè)步驟

1、建立應(yīng)用程序界面

2、設(shè)置對(duì)象的屬性

3、編寫應(yīng)用程序的代碼

4、保存和運(yùn)行程序

VB擁有圖形用戶界面(GUI)和快速應(yīng)用程序開發(fā)(RAD)系統(tǒng),可以輕易的使用DAO、RDO、ADO連接數(shù)據(jù)庫(kù),或者輕松的創(chuàng)建Active?X控件,用于高效生成類型安全和面向?qū)ο蟮膽?yīng)用程序。程序員可以輕松的使用VB提供的組件快速建立一個(gè)應(yīng)用程序。

擴(kuò)展資料

VB語(yǔ)言缺點(diǎn)

Visual Basic 語(yǔ)言具有不支持繼承、無(wú)原生支持多線程、異常處理不完善等三項(xiàng)明顯缺點(diǎn),使其有所局限性(此些缺點(diǎn)皆已在 vb .net 獲得改進(jìn))。

1、不支持繼承

VB 5.0 和 VB 6.0 都是基于對(duì)象的編程語(yǔ)言,但是不包含繼承特性。VB 中提供了特殊的類的功能,但是還是不能滿足程序員的需求。

2、無(wú)原生支持多線程

Visual Basic 對(duì)于多線程無(wú)原生支持,只能通過(guò)Windows API的調(diào)用實(shí)現(xiàn),且極其的不穩(wěn)定。因?yàn)樵贏PI創(chuàng)建的線程中,并沒(méi)有自動(dòng)初始化運(yùn)行時(shí)庫(kù),導(dǎo)致部分的函數(shù)無(wú)法使用。一般的,在VB6等早期的VB開發(fā)環(huán)境下,使用API創(chuàng)建線程的目的是完成容易使程序假死的大量數(shù)據(jù)或者邏輯的計(jì)算。

3、異常處理不完善

Visual Basic 中內(nèi)置異常處理,即使未寫異常處理代碼,一旦用戶出錯(cuò)也會(huì)彈出一個(gè)明確寫出出錯(cuò)原因?qū)υ捒?,接著程序終止。

Visual Basic 中可以使用 Err.Raise拋出異常。對(duì)系統(tǒng)及用戶拋出的異常的處理常用兩種模式:一是使用 On Error Resume Next 處理錯(cuò)誤;另一種是使用 On Error Goto 將運(yùn)行引入錯(cuò)誤處理代碼。但相對(duì) C++ 等語(yǔ)言而言,這樣的異常處理破壞了代碼的結(jié)構(gòu)。

文章名稱:vb.net程序員手冊(cè) vbnet web編程
網(wǎng)站鏈接:http://muchs.cn/article48/dospphp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營(yíng)銷推廣網(wǎng)站建設(shè)、微信公眾號(hào)、網(wǎng)站設(shè)計(jì)、營(yíng)銷型網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

營(yíng)銷型網(wǎng)站建設(shè)