呵呵
專注于為中小企業(yè)提供做網(wǎng)站、成都網(wǎng)站建設服務,電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)懷化免費做網(wǎng)站提供優(yōu)質(zhì)的服務。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了上千企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設實現(xiàn)規(guī)模擴充和轉(zhuǎn)變。
我給你個資料 你看看 至于你的問題 網(wǎng)上爭議太多
我不發(fā)表任何看法!嘿嘿!
=========================================
Visual Basic .NET
Visual Basic.NET是基于微軟.NET Framework之上的面向?qū)ο蟮闹虚g解釋性語言,可以看作是Visual Basic在.Net Framework平臺上的升級版本,增強了對面向?qū)ο蟮闹С帧5捎诟膭犹?,導致VB點虐 對VB的向后兼容性不好,在業(yè)界引起不小的爭議。
大多的VB.Net程序員使用Visual Studio .Net作為IDE(integrated development environment). SharpDevelop是另一種可用的開源的IDE。VB.Net需要在.Net Framework平臺上才能執(zhí)行。 VB.NET的主頁
1 目前版本
2005年9月以來,存在三種不同版本的Visual Basic .NET.
1 Visual Basic .NET:是隨vc#和ASP.NET一起在2002年發(fā)布的最初始的VB點虐 版本。C#被大力宣傳為微軟對付JAVA的王牌,受到媒體極力關(guān)注。然而VB.NET(有時被稱為VB7)影響面臘局睜不廣,這導致VB社區(qū)之外很少人關(guān)注它。那些試用過此版VB.NET的人在層層幕布下發(fā)現(xiàn)一個強大卻艱深的語言,而且還有不少弱點,比如它比VB6來有一個大了十倍的進行時(RunTime),內(nèi)存footprint也大大增加。
2 Visual Basic .NET 2003:是和.NET Framework 1.1一起發(fā)布的。新功能包括對.NET Compact Framework的支持和更好的VB升遷向?qū)?。并改進了運行狀況,IDE穩(wěn)定性(尤其是后臺編譯器),以及運行時RunTime穩(wěn)定性。另外,VB.NET 2003還有一個學院版Visual Studio .NET 2003 Academic Edition (VS03AE),它是分發(fā)給各國某些學者免費使用的版本。
3 Visual Basic 2005:VB2005是VB.Net的重大轉(zhuǎn)變,微軟決意在其軟件名稱中去掉了.NET部臘或份。在VB2005中,微軟增加了許多新功能,以引用VB對于初學者來說的一些優(yōu)點:
A, Edit and Continue - 也許是從VB那里丟掉的最大的功能,允許代碼的編輯和執(zhí)行立即的執(zhí)行恢復。
B, Design-time expression evaluation
C, My偽命名空間,提供了訪問.NET Framework特定域的不需大量編碼的簡單方式;還能動態(tài)產(chǎn)生類(顯然的是My.Forms);提供了改進的VB到VB.NET轉(zhuǎn)換向?qū)?;Using 語法,簡化了需要部署pattern to free resources的對象的使用;My編碼,可隱藏由VB.NET IDE寫的模板代碼;數(shù)據(jù)源綁定,簡化了數(shù)據(jù)庫C/S開發(fā)
上述功能(尤其是My)增強了VB.Net成為快速開發(fā)應用平臺的可能,并與C#進一步區(qū)別開來。參見:
使用My開發(fā)
通過My命名空間訪問.NET Framework 和項目
Visual Basic 2005 通過增加新功能而填補了和其它所謂更強大的.NET語言的差距。
A, 增加了.NET 2.0語言功能包括:generics和Partial類(在一個文件里定義一個類的某部份然后再添加更多的定義,這個方法在整合用戶編碼和系統(tǒng)自動生成編碼時尤其有用)。
B, XML注釋,可以被輪歲NDoc等工具處理而自動生成文檔
C, operator overloading
D, 支持在其它語言中已經(jīng)廣泛使用的unsigned integer數(shù)據(jù)類型。
E, 支持在許多C衍生編程語言已提供的復合操作符如:"+=", "-="
4, IsNot專利:If Not X Is Y表達式被轉(zhuǎn)換成If X IsNot Y。當微軟為IsNot申請專利時招致了惡名(尤其來自Real公司)。
5, Visual Basic 2005 Express:作為VS產(chǎn)品線上的一部份,VB2005 Express是專為業(yè)余愛好者和新手定制的免費的VS Express系列的一員。Express版本目的定位在幫助人們學習一種語言,所以他們有和標準版一致的用戶界面,只是少了一些高級功能。另外,VS Express版包括了VB6.0轉(zhuǎn)換器,提供了從VB老版本升級的可行方法。
2 和VB的關(guān)系
VB點虐 是否該被看作VB的新版本或者是另一個完全不同的語言尚在爭議中。雖然并非顯而易見,但只要某個方法被棄用,它就會可會被自動轉(zhuǎn)換,這說明了該語言的句法并沒有出現(xiàn)很多突破性的變化,只是增加了對新功能的支持,比如結(jié)構(gòu)化意外處理機制和短循環(huán)表達式(structured exception handling and short circuited expressions)。有一種變化會讓舊用戶迷惑:Integer和Long數(shù)據(jù)類型在長度上分別倍增。16位的 integer 在VB.NET中被認為是Short,而Integer和Long分別是32位和64位。同樣,Windows Forms GUI編輯器和VB Form 編輯器在外觀和功能上非常相似。
出現(xiàn)巨大變化的是語意,從運行于基于COM的deterministic, reference-counted的引擎之上的編程環(huán)境,轉(zhuǎn)變?yōu)槿婷嫦驅(qū)ο蟮幕?NET Framework的語言。.NET Framework包括了CLR (使用通用垃圾收集機制和JIT編譯引擎的虛擬機)和大量的類庫。VB開發(fā)者進入VB.NET要面對新增的大量類庫的問題,雖然這在VS 2005的My 功能中已有所闡述。
上述變化表明了許多在運行及維護相關(guān)優(yōu)化事宜下面的假定,一些VB6函數(shù)和庫不再存在而其它的仍然可用,但是比不上.NET語言中自帶的可替換的函數(shù)和庫來得高效。即使它們可被編譯,但大多從VB6轉(zhuǎn)換而來的應用將需要一定程度上的重構(gòu)(refactoring),以全面利用新語言的優(yōu)點。在有關(guān)句法、應用調(diào)試、部署和術(shù)語等方面的變化,有大量的文檔可以參考。
1, 比較樣例:
兩個例子都彈出"Hello,World"并帶OK按鈕的信息框,它們顯示了VB和VB.Net在句法上的相似。
VB:
Private Sub Command1_Click()
MsgBox "Hello, World"
End Sub
VB.NET:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
MessageBox.Show("Hello, World")
End Sub
注意,VB.NET中的所有過程調(diào)用都必須加圓括號,而VB6中只有調(diào)用函數(shù)或者VB6中使用Call來調(diào)用過程時
才需要加圓括號,
另外,Command1和Button1并非必須,只是VB和VB.NET系統(tǒng)自動默認的控件名。
兩個例子都卸載活動窗口,它們顯示了VB和VB.Net在句法上的不同。
VB:
Private Sub cmdClose_Click()
Unload Me
End Sub
VB.NET:
Private Sub cmdClose_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdClose.Click
Me.Close()
End Sub
2, 爭議:許多資深的VB程序員抱怨VB.NET,因為VB.NET 2002丟掉了許多不再發(fā)行的VB6中使用的大量語言constructs和用戶界面功能,并且對保留下來的東西也改變了語意。例如,在VB.NET參數(shù)默認是以值方式傳遞的,而不是以引用方式。VB.NET 2002被半嘲諷半認真地稱為Visual Fred或VBDOTNOT。作為對2005-03-08微軟拒絕為VB6再提供維護與支持的回應,當月月底出現(xiàn)了反對者的請愿(petition)
VB.NET的支持者們認為新語言在很多方面比舊版本更為強大,比如它以相比早期版本更為自然、緊密和完全的方式地加入了現(xiàn)代面向?qū)ο蟮木幊谭妒?。反對者們有不同意見,雖然VB6對對象模型支持有缺點,但是二次開發(fā)升級到VB.NET 的成本比升級后的收益要高得多。而開發(fā)軟件發(fā)布因特網(wǎng)版本的獨立程序員也對VB.NET的RunTime尺寸過大不滿。
相對編譯成機器碼的語言,編譯成MSIL的語言包括VB.NET比較容易被反編譯。
微軟提供了VB到VB.NET的自動轉(zhuǎn)換器,雖幾經(jīng)改進,但仍無法轉(zhuǎn)換全部代碼,幾乎所有非小型程序都需要人工修改以完成編譯。為了運行優(yōu)化,大多程序需要大量工作去重構(gòu)。
主要是進行演算的VB程序自然會更容易升遷,但是采用了以下功能,如數(shù)據(jù)庫支持,圖形, unmanaged operations,或者在安裝啟用明細方面都很麻煩。不幸的是,這些恰好是許多商業(yè)應用的核心。
另外,Win98及其以上的系統(tǒng)就自帶了VB6的運行時(RunTime)庫,而VB.NET需要安裝大得多的.NET Framework。除了 Windows Vista, Windows XP Media Center Edition, Windows XP Tablet PC Edition and Windows Server 2003有自帶.NET Framework,其它版本需要另外安裝,這對用戶和程序員都不方便。
針對開發(fā)者的不滿,微軟主要做了如下努力:使新的開發(fā)更容易啟動,而把已開發(fā)的VB6代碼升級到VB.NET。他們的最新成果可以從這里看到: , 那里文章和源碼例子主要包括:完成VB6中的常見任務如打印預覽;整合VB6和VB.NET解決方案(dubbed VB Fusion),從VB6 代碼轉(zhuǎn)換到 VB.NET。
3 跨平臺和開源的開發(fā)
目前和C#相比,針對VB.NET開發(fā)的開源工具發(fā)展得比較慢,雖然MONO開發(fā)平臺提供了一個VB.NET特性庫(VB.NET-specific libraries)并著手研發(fā)一個編譯器和Windows Forms GUI 庫.
4 VB革命
VB1.0于1991年發(fā)布。這個連接編程語言和用戶界面的進步被稱為Tripod(有些時候叫做Ruby),最初的設計是由阿蘭·庫珀(Alan Cooper)完成的
4.1 時間線
* 1991年4月,Visual Basic 1.0 Windows版本發(fā)布
* 1992年9月,Visual Basic 1.0 DOS版本發(fā)布。
* 1992年11月,VB2.0發(fā)布。它對于上一個版本的界面和速度都有所改善。
* 1993年夏天,VB3.0發(fā)布,分為標準版和專業(yè)版。其中包含一個數(shù)據(jù)引擎,可以直接讀取Access數(shù)據(jù)庫。
* 1995年8月,VB4.0發(fā)布了32位版本和16位的版本。其中包含了對類的支持。
* 1997年2月,VB5.0發(fā)布。程序員可以用32位的版本導入由4.0版本創(chuàng)建的16位程序,并且能順利編譯。同時還包含了對用戶自建控件的支持。
* 1998年夏天,VB6.0發(fā)布。
* 2001年,Visual Basic.NET和.NET Framework發(fā)布。由于其使用了新的核心和特性,所以很多VB的程序員都要改寫程序。
* 2003年,Visual Basic.NET 2003和.NET Framework 1.1發(fā)布。
* 2004年,微軟發(fā)布了Visual Studio 2005的測試版本(代號Whidbey)。包含了.NET Framework2.0的測試版本。
* 2005年,微軟宣布將不會再對非.NET版本的VB進行支持。VB社群立即作出反應表示關(guān)心這個消息,一些老用戶還遞交了希望能夠繼續(xù)對VB進行技術(shù)支持的請愿書。微軟目前還不愿意改變他們的決定。
* 2005年11月7日,Visual Studio 2005正式發(fā)布。
5 加減乘除的程序
5.1 使用指定的值下執(zhí)行指定運算
例子1:程序中只利用一個按紐及清單進行指定的值下執(zhí)行指定運算 例子中:增設以下的圖形工具
圖形工具 缺省名稱 更改名稱 屬性 顥示文字
---------------- ---------------------
按紐 buton1 btn1 text 計算器
顥示清單 lstbox1 lst1 text
---------------------------------------
設定名稱 設定屬性
----------------
N1 double
N2 double
N3 double
answer double
設定宣告屬性 指出不同的值代替數(shù)字N1,N2,N3 及answer
Private Sub btn1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn1.Click
Dim N1, N2, N3, answer As Double
N1= 4000
N2= 9
N3= 5
answer = (N1/ (N2- N3))
Lst1.Items.Add(answer)
end sub
解釋:
第一列 - 為btn1按紐對系統(tǒng)VB的宣告(VB.NET程序中已提供的)
第二列 - 為對代數(shù)N1,N2,N3 及answer 進行的多重宣告(這例子指派代數(shù)為Double數(shù)字
一定要使用數(shù)字若有小數(shù)會同時顥示小數(shù))
值得一提的是使用( , )來宣實是一種懶的做法,最正確的是
Dim N1 as double
Dim N2 as double
Dim N3 as double
Dim answer as double
一列一列地宣告一次
但是小程序可以這樣做,當程序過大時會建議用懶的做法
第三列 - 當N1 是 4000
第四列 - 當N2 是 9
第五列 - 當N3 是 5
第六列 - 同時 answer = (N1/ (N2- N3))的數(shù)學運算
第七列 - 因此清單上會顥示運算答案
第八列 - 程序結(jié)束(這個按紐btn1)
以上一最簡單的羅緝運算,也是VISUAL BASIC 發(fā)展的關(guān)鍵 最后以上的宣告方法也可以通用于VB版本中
5.2 輪入指定的值下執(zhí)行指定運算
例子2:在表單上先輪入一個或以上的值數(shù)值再進行運算。 方法:1.與上例相同增加以上述圖形工具 2.增設以下的圖形工具
圖形工具 缺省名稱 更改名稱 屬性 顥示文字
----------------------------------------
文字盒 textbox1 txt1 text 0
文字盒 textbox2 txt2 text 0
文字盒 textbox3 txt3 text 0
----------------------------------------
設定與上例的相同宣告屬性
設定名稱 設定屬性
------------------
N1 double
N2 double
N3 double
answer double
-----------------
注意:只顥示由第三列至第七列的改變
注意:例子注解將使用( ' )取代,此符號旨可使用于Visual Basice的版本中作為注解,程序?qū)⒉焕頃?nèi)函的內(nèi)容。
N1= txt1.text '指示txt1的內(nèi)容被n1所暫代
N2= txt2.text '指示txt2的內(nèi)容被n2所暫代
N3= txt3.text '指示txt3的內(nèi)容被n3所暫代
answer = (N1/ (N2- N3)) '相同的除數(shù)及淢數(shù)
Lst1.Items.Add(answer) '計算后將顥示在清單上
注意1:(txt1, txt2, txt3)后的.text是指把被顥示的內(nèi)函的值文字或數(shù)字(但不包函符*號或特殊字)的設定。
注意2:(當使用者不想使用清單作顥示時,而想用文字盒作為替代,那麼我們進行以下的改動
假設我們使用例1進行修改時
步驟1.增設以下圖形工具 -
圖形工具 缺省名稱 更改名稱 屬性 顥示文字
----------------------------------------
文字盒 textbox4 txt4 text 0
步驟2刪除 - 把設計版面中的清單中(lst1)中清除 步驟3刪除 - 把程序碼中第六行的Lst1.Items.Add(answer)清除. 步驟4更改程序碼 - 在被清除的同一行中加入:txt1.text = answer
6 設定指定的文字及顯示在清單上
7 Format String
8 For Loop
9 if Then Else
10 宣告類別
Double浮點數(shù) String字串 integer整數(shù) long長整數(shù)
11 Data Base
開放分類:
網(wǎng)絡、編程語言、計算機、微軟、.NET
你旁搭可以用C#調(diào)用VB點虐 寫的程序 但是直接轉(zhuǎn)換的話 是不可能的
你可以試試把VB點虐 編譯 然后反編譯成C#的 不嘩啟卜知道亂穗可不可以
Private?Function?RMBChinese(ByVal?Rmb?As?Double)?As?String
Dim?Rmbexp?As?String
Dim?Rmbda?As?String
Dim?Expda?As?String
Dim?Ntyp?As?Integer
Dim?Icnt?As?Integer
Dim?i?As?Integer
Dim?Trmb?As?String
Dim?re?As?String?=?0
Rmb?=?Format(Rmb,?"###0.00")
If?Rmb??999999999999.99?Then
re?=?"需轉(zhuǎn)換的金額整數(shù)長度超過了12位!"
缺棗畝??Return?re
End?If
Rmbexp?=?"分角元拾佰仟萬拾佰仟億拾佰仟"
Rmbda?=?"零壹貳叁肆伍陸柒捌玖"
Ntyp?=?0
Trmb?=?Replace(CStr(Format(Rmb,?"0.00")),?".",?"")
If?Microsoft.VisualBasic.Left(Trmb,?1)?=?"-"?Then
Trmb?=?Mid(Trmb,?2)
Ntyp?=?1
End?If
Expda?=?""
Icnt?=?Len(Trmb)
For?i?伏森=?1?To?Icnt
Expda?=?Mid(Rmbda,?Val(Mid(Trmb,?Icnt?-?i?+?1,?1))?+?1,?1)?+?IIf(Mid(Rmbexp,?i,?1)?=?"元",?Mid(Rmbexp,?i,?1)?+?"?",?Mid(Rmbexp,?i,?1))?+?Expda
Next
re?=?IIf(Ntyp?巖塌=?1,?"負"?+?Expda,?Expda)
Return?re
End?Function