共找到2條詞條名為Visual Basic .NET的結果 展開

Visual Basic .NET

Visual Basic .NET

Visual Basic.NET是基於微軟.NET Framework之上的面向對象的編程語言。

其在調試時是以解釋型語言方式運作,而輸出為EXE程序時是以編譯型語言方式運作。

可以看作是Visual Basic在.Net Framework平台上的升級版本,增強了對面向對象的支持。大多的VB.Net程序員使用Visual Studio .Net作為IDE(integrated development environment).SharpDevelop是另一種可用的開源的IDE。

VB.Net需要在.Net Framework平台上才能執行。

簡介


Visual Basic .NET(VB 7.0)是隨Visual C#和ASP.NET一起在2002年發布的最初始的VB.NET版本。C#被大力宣傳為微軟對付JAVA的王牌,受到媒體極力關注。然而VB.NET(有時被稱為VB 7.0)影響面不廣,這導致VB社區之外很少人關注它。那些試用過此版VB.NET的人在層層幕布下發現一個強大卻艱深的語言,而且還有不少缺點,例如它的運行階段組件(Run-Time)比VB6大了十倍,存儲器使用量也大大增加。
VB 7.0引起了廣泛的爭議,主要原因在於對舊版VB的改動過大。許多資深的VB程序員抱怨VB.NET,因為VB.NET 2002丟掉了許多不再發行的VB6中使用的大量語言結構和用戶界面功能,並且對保留下來的東西也改變了語意。例如,在VB.NET參數默認是以值方式傳遞的,而不是以引用方式。VB.NET 2002被半嘲諷半認真地稱為Visual Fred或VB DOTNOT。作為對2005年3月8日微軟拒絕為VB6再提供維護與支持的回應,當月月底出現了反對者的請願。
VB.NET的支持者們認為新語言在很多方面比舊版本更為強大,比如它以相比早期版本更為自然、緊密和完全的方式地加入了現代面向對象的編程範式。反對者們有不同意見,雖然VB6對對象模型支持有缺點,但是二次開發升級到VB.NET的成本比升級后的收益要高得多。而開發軟體發布網際網路版本的獨立程序員也對VB.NET的RunTime尺寸過大不滿。
針對開發者的不滿,微軟主要做了如下努力:使新的開發更容易啟動,而把已經開發的VB6代碼升級到VB.NET。例子主要包括:完成VB6中的常見任務如列印預覽;集成VB6和VB.NET解決方案(dubbed VB Fusion),從VB6代碼轉換到VB.NET。
微軟在後續版本中撤銷了一些過激的更改,並且吸取了經驗。在以後版本中,語法的更改變得更加謹慎。

關鍵詞

關鍵字描述
Namespace包含類似或相關功能的類的集合
Class用來定義一個類用以存儲對象的屬性、方法和事件
Sub子過程,可以把要使用的數據以參數形式傳入,但不返回值
Function函數,同樣可以傳參數,但要求有返回值
Property屬性過程,設置或返回對象的屬性值
Return結束當前sub或function,若是函數則返回一個函數值
Dim聲明或定義一個變數
New創建一個新的實例對象
Nothing表示一個變數沒有值,與其他語言或資料庫中的null等價
Me當前類的實例對象的引用
Console.NET用於訪問和操作命令窗口的類,主要用於命令行應用程序
Module模塊,定義一個不是類的代碼塊,但它同樣可以包含變數和方法

語言特性

此段列出的是僅Visual Basic .Net語言部分較獨特或者較重要的特性。

數據類型

• 數值型:整型(Short、Integer、Long和無符號的Byte)、非整型(Decimal 、Single、Double)
• 字元型:Char、String
• 泛型:List(Of T)、Dictionary(Of K,V)
• 其他類型:Boolean、Date、Object、Enum、Array、ArrayList、Structure

運算符

• 算術運算符:/(除),\(整除),Mod(取模)
• 串聯運算符:&,+亦可
• 邏輯/按位運算符:Not、And、Or、Xor、AndAlso、OrElse
• 賦值運算符:= ,^= ,*= ,/= ,\= ,+= ,-= ,<<=,>>=,&=
• 比較運算符:< ,<= ,> ,>= ,= ,<> ,Is ,IsNot ,Like
• 移位運算符:<< ,>>
• 其他運算符:AddressOf 運算符,GetType 運算符,函數表達式,If 運算符,TypeOf 運算符,Await 運算符
• DirectCast 運算符
• TryCast 運算符
• New 運算符
*運算優先順序:算術>連接>比較>邏輯運算(用括弧可改變優先順序)
詳細:
如果表達式中出現幾種運算,將按照預先確定的稱為“運算符優先順序”的順序計算和解析各個部分。
優先順序規則
當表達式包含不止一種運算符時,則按照下列規則對其進行計算:
• 算術運算符和串聯運算符的優先順序在下面列出,它們的優先順序均高於比較運算符、邏輯運算符和位運算符。
• 所有比較運算符具有相同的優先順序,它們的優先順序均高於邏輯運算符和位運算符,但低於算術運算符和串聯運算符。
• 邏輯運算符和位運算符的優先順序在下面列出,它們的優先順序均低於算術運算符、串聯運算符和比較運算符。
• 具有相同優先順序的運算符將按照它們在表達式中出現的順序從左至右進行計算。
優先順序順序
運算符的計算優先順序順序如下:
算術運算符和串聯運算符
求冪 (^)
一元標識和非(+、–)
乘法和浮點除法(*、/)
整數除法 (\)
取模 (Mod)
加法和減法(+、–),字元串連接 (+)
字元串連接 (&)
算術移位(<<、>>)
比較運算符
所有比較運算符(=、<>、<、<=、>、>=、Is、IsNot、Like、TypeOf...Is)
邏輯運算符和位運算符
非 (Not)
與 (And、AndAlso)
或 (Or、OrElse)
異或 (Xor)
註釋
= 運算符只是相等比較運算符,而不是賦值運算符。
字元串連接運算符 (&) 不是算術運算符,但它在優先順序方面與算術運算符屬於一組。
Is 和 IsNot 運算符是對象引用比較運算符。它們不比較兩個對象的值,只確定兩個對象變數是否指向相同的對象實例。
結合性
當具有相同優先順序的運算符(例如乘法和除法)在表達式中一起出現時,編譯器將按每個運算符出現的順序從左至右進行計算。
Visual Basic 中的運算符具有“左結合性”。
重寫優先順序和結合性
可以使用括弧強製表達式中的某些部分先於其他部分計算。這會重寫優先順序順序和左結合性。 Visual Basic 始終先執行括在中括弧內的操作,再執行括弧外的操作。然而,在括弧內,它保持普通優先順序和結合性,除非您在括弧內再使用括弧。

流程式控制制

• 條件:If、Select Case
• 循環:For、For Each、While、Do While… …Loop、Do …Loop Until…
• 終止:Exit [Do、For、Function、Property、Select、Sub、Try]
• 異常處理:Try...Catch...Finally 語法支持"結構化異常處理"。
*三元表達式:IIf(Expression,TruePart,FalsePart),是Microsoft.VisualBasic命名空間下的函數,不論結果如何都會計算TruePart和FalsePart的表達式,它有相應的返回值。
較高版本中存在 If(Expression,TruePart,FalsePart) 運算符,與IIf的區別是它能短路計算,Expression為真時不計算FalsePart,Expression為假時不計算TruePart

系統常量

Visual Basic .Net有很多系統常量,它們都在Microsoft.VisualBasic.Constants命名空間下,這些常量包括很多方面,如表示回車換行符的vbCrLf、表示邏輯結果的vbOK以及用在時間方面的vbShortDate等等。

對象關鍵詞

Visual Basic .Net已經是一門完全面向對象的語言,以下是關於面向對象的一些關鍵詞:
Inherits繼承Overloads重載
Shadows隱藏覆蓋Overrides重寫
Interface聲明介面Implements實現介面
還有一些與上面對應的如可重載、必須繼承等等在這裡就沒必要一一列出了。

表達式

在Visual Basic .Net使用 Function 或 Sub 關鍵字創建 Lambda 表達式,就像創建標準函數或子常式一樣。但是,Lambda 表達式包括在語句中。下面分別演示單行與多行。
用Function並返回值:
用Sub:
比起其他語言,Visual Basic .Net用Function和Sub更能直觀體現Lambda表達式的本質——匿名方法。

編譯


 Visual Basic .NET 2003(VB 7.0)和.NET Framework 1.1一起發布。新功能包括對.NET Compact Framework的支持和更好的VB升遷嚮導。並改進了運行狀況,IDE穩定性(尤其是後台編譯器),以及運行時RunTime穩定性。另外,VB.NET 2003還有一個學院版Visual Studio .NET 2003 Academic Edition(VS03AE),它是分發給各國某些學者免費使用的版本。

版本歷史

Visual Basic .NET 2002
2002年Visual Basic .NET 問世,此後Visual Basic 包含在 Visual Studio套裝中。該版本又被稱為VB 7.0,是與C#一起在2002年發布的最初始的VB.net版本。C#是一門新設計.Net語言並且語法上和Java有一定的相似性,所以被大力宣傳為微軟對付JAVA的王牌,受到媒體極力關注。然而VB.NET則相反被錯誤地認為僅僅是VB的一個升級(故有時被稱為VB7),它的受關注度也因此較低,當然VB社區以及喜歡Basic系列風格的語言的人還是很關注它的。那些試用過此版VB.NET的人在層層幕布下發現一個強大卻艱深的語言。不過任何一種語言都是有弱點的,當然後面這一點也是.NET語言的共性,那就是運行的計算機上必須裝相應版本的.Net framework。
Visual Basic .NET 2003
該版本是和.NET Framework 1.1一起發布的。新功能包括對.NET Compact Framework的支持和更好的VB升遷嚮導。並改進了運行狀況,IDE穩定性(尤其是後台編譯器),以及運行時RunTime穩定性。另外,VB.NET2003還有一個學院版Visual Studio .NET 2003 Academic Edition (VS03AE),它是分發給各國某些學者免費使用的版本。
Visual Basic .NET 2005
該版本是VB.Net的重大轉變。但是這個版本的 Visual Studio 仍然還是面向 .NET 框架的(版本2.0)。它同時也能開發跨平台的應用程序,如開發使用微軟操作系統的手機的程序等。總體來說是一個非常龐大的軟體,甚至包含代碼測試功能。
Visual Basic .NET 2008
Visual Basic 2008於2008年2月1日發布。通過幾年的發展,它已成為一種專業化的開發語言和環境。用戶可用 Visual Basic 快速創建 Windows 程序,還可以編寫企業水平的客戶/伺服器程序及強大的資料庫應用程序。
Visual Studio 2010
Visual Studio 2010於2010年4月12日上市,其中包含 Visual Basic .NET 2010 。Visual Studio是微軟公司推出的開發環境,是最流行的Windows平台應用程序開發環境。Visual Studio 2010集成開發環境(IDE)的界面被重新設計和組織,變得更加簡單明了。Visual Studio 2010同時帶來了 NET Framework 4.0、Microsoft Visual Studio 2010 CTP( Community Technology Preview--CTP),並且支持開發面向Windows 7的應用程序。除了Microsoft SQL Server,它還支持 IBM DB2和Oracle資料庫等。
從該版本開始VB.NET已沒有單獨發售的IDE了,微軟給Visual Basic .NET 以及C#開發者的IDE就只有Visual Studio 了。該版本增加了modern(原metro)風格的支持等眾多新特性。
Visual Studio 2015
增加了大量新特性,提升你的編寫效率。對編譯器和開發環境優化,提高編譯速度,幫你重構代碼和解決錯誤。最明顯的14項改進見參考資料的14 Top Improvements in Visual Basic 14。

VB關係

不能簡單認為VB .net是VB的新版本。首先它們一個是完全面向對象的語言,而另一個不是完全面向對象的,其次VB .NET是構建於.Net framework之上的。當然,它們同屬Basic系列語言,又同為微軟所開發,語法上有一定的相似或沿襲是很正常的,但不能因此認為VB .NET是VB的升級版。
對於想從VB轉到VB .NET的開發者來說,如果你只是喜歡Basic系列語言的代碼風格,那麼你的遷移會很順利,如果你想沿襲之前VB的編程思想和習慣,你會很苦惱,原因之一就是VB .NET貫穿的是完全面向對象的思想,而VB不是。
微軟為使VB開發者更容易轉到VB .NET,兼容一些VB6函數和庫的用法,但是比不上.NET語言中自帶的可替換的函數和庫來得高效,所以我們應該盡量使用.NET下的新方法。微軟還提供了VB到VB .NET的自動轉換器,雖幾經改進,但仍無法轉換全部代碼,幾乎所有非小型程序都需要人工修改以完成編譯。為了運行優化,大多程序需要大量工作去重構。
爭議與解釋:許多資深的VB程序員抱怨VB .NET,因為VB .NET丟掉了許多不再發行的VB6中使用的大量語言constructs和用戶界面功能,並且對保留下來的東西也改變了語意。其實不應該再把VB和VB .NET做功能上的比較,因為它們除了有些語法相似外,可以說是完全不同的兩種語言。
Visual Basic .NET與VB都代表了Basic系列語言的編碼風格,Visual Basic .NET是這種編碼風格在.NET平台上的繼承,而不是同系列語言VB的沿襲。
語言革命
* 1991年4月,Visual Basic誕生,Visual Basic 1.0 Windows版本發布。這個連接編程語言和用戶界面的進步被稱為Tripod(有些時候叫做Ruby),最初的設計是由阿蘭·庫珀(Alan Cooper)完成的。 1992年9月,Visual Basic 1.0 DOS版本發布。
* 1998年夏天,VB6.0發布。
* 2001年,Visual Basic .NET和.NET Framework發布。Visual Basic .NET正式誕生。
* 2005年,微軟宣布將不會再對非.NET版本的VB進行支持。
*2010年,Visual Basic .NET隨Visual Studio 2010發布,不再提供單獨的Visual Basic .NET IDE。

開發

MONO開發平台提供了一個VB.NET特性庫(VB.NET-specific libraries)並著手研發一個編譯器和Windows Forms GUI 庫。由於各方面的原因,VB.NET開發的開源工具較C#發展得慢一些。