华南俳烁实业有限公司

考試首頁 | 考試用書 | 培訓(xùn)課程 | 模擬考場 | 考試論壇  
  當(dāng)前位置:編程開發(fā) > DotNET > VB.Net > 文章內(nèi)容
  

VB.NET教程:VB.NET語法基礎(chǔ)學(xué)習(xí)

 [ 2017年9月4日 ] 【

  很久以來,VB因?yàn)槿狈ν晟频拿嫦驅(qū)ο笾С、缺乏高效的錯(cuò)誤處理機(jī)制和性能表現(xiàn)不佳,因而一直受到某些人的嘲笑。VB.NET將徹底改變這種情況。然而,VB.NET在這些方面的改進(jìn)也要付出代價(jià),許多舊的代碼需要手工進(jìn)行轉(zhuǎn)換才能在VB.NET下運(yùn)行。

  下面幾個(gè)表格總結(jié)了VB.NET語言在語法上的改動之處。注意這些表格并沒有完全列出所有改動之處,但列出了最重要的一些改動。

  表A對比了VB6中一些熟悉的語法形式及其在VB.NET中類似功能最接近的語法形式。

  表A:語法對比舊語法 新語法 說明窗體裝載事件,類初始化事件 Sub New procedure Sub New稱為構(gòu)造方法(Constructor),它可以有參數(shù)。

  Property Let Property Set Let關(guān)鍵詞不再有效。

  Currency Decimal 在VB6中,Decimal是Variant的一種子類型,但在。NET中它是一種固有的數(shù)據(jù)類型。。NET不再支持Currency數(shù)據(jù)類型。

  Variant Object VB.NET的Object數(shù)據(jù)類型兼有VB6 Object類型和Variant類型的能力。

  Debug.Print Debug.Write Debug.WriteLine 這個(gè)變化只是名稱上的簡單變化:從Print變?yōu)閃rite和WriteLine. Wend End While VB.NET推薦使用While循環(huán)而不是Do循環(huán)。

  

  為了讓VB的數(shù)據(jù)類型和其他。NET語言的數(shù)據(jù)類型相匹配,Microsoft修改了整數(shù)類數(shù)據(jù)類型的表示方法,并加入了一個(gè)新的數(shù)據(jù)類型。這些改動對于進(jìn)行外部調(diào)用的方法尤其重要(比如API調(diào)用)。例如,如果被調(diào)用函數(shù)需要一個(gè)32位的整數(shù)參數(shù),則在VB6中它應(yīng)該聲明為Long,在VB.NET中應(yīng)該聲明為Integer.

  表B:和整數(shù)有關(guān)的數(shù)據(jù)類型長度 VB6以及更早版本中的名稱 VB.NET中的名稱16 bit Integer Short 32 bit Long Integer 64 bit (無) Long

  

  在VB.NET中,Microsoft減少了許多原先用于VB6的關(guān)鍵詞,代之以“框架類”。之所以要進(jìn)行這種替換,是因?yàn)榭蚣茴愔械墓δ軐λ械?NET語言都有效。下表列出了部分受影響的關(guān)鍵詞。

  表C:被替換的關(guān)鍵詞
VB關(guān)鍵詞 VB.NET名稱空間中的位置 方法/屬性

Circle System.Drawing.Graphics DrawEllipse

Line System.Drawing.Graphics DrawLine

Atn System.Math Atan

Sgn System.Math Sign

  Sqr System.Math Sqrt

Rnd Microsoft.VisualBasic.Compatibility.VB6 Rnd

Round Microsoft.VisualBasic.Compatibility.VB6 Round

Lset System.String PadRight

Rset System.String PadLeft

DoEvents System.Winforms.Application DoEvents

VarType System.Object GetType(返回類Type的對象,其中包含了可提取出信息的屬性)

  
 在VB.NET中,變量、數(shù)組的聲明和初始化方法都有所變化,下表概要地列出了VB.NET在這方面的變化。

  表D:新的聲明方法
變化 語法舉例
單個(gè)聲明語句中不能聲明多種類型。 'VB.NET不允許出現(xiàn)下面這種聲明!
Dim nCount As Integer, bAnswer As Boolean
聲明變量時(shí)可賦予初始值 Dim nCount As Integer = 20
Dim nDoubleCount as Integer = nCount * 2
允許為數(shù)組元素指定初始值 Dim nIndex(3) As Integer = (3, 5, 7)
不能用Redim進(jìn)行聲明,只能用Redim重新定義數(shù)組大小。 '下面這行代碼在VB.NET中不合法!
Redim sName() As String

  
大量新關(guān)鍵詞實(shí)現(xiàn)了VB.NET中的新功能。下面是一些最重要的關(guān)鍵詞及其用途、用法簡例。

  表E:VB.NET的新關(guān)鍵詞
關(guān)鍵詞 用途 簡單例子
Inherits 指向基類,用于實(shí)現(xiàn)繼承。 Inherits System.WinForms.Form
MyBase 在子類的代碼中,MyBase引用基類。 StringProperty = MyBase.StringProperty
Shared Shared表示類的所有實(shí)例共享類里面的變量。 Public Shared BaseLocation As String
Try
Catch
Finally
Throw 這是新的錯(cuò)誤處理關(guān)鍵詞。Try開始一個(gè)啟用錯(cuò)誤控制的代碼塊,Catch標(biāo)識一個(gè)對特定錯(cuò)誤進(jìn)行處理的代碼塊,F(xiàn)inally開始一個(gè)不管錯(cuò)誤是否出現(xiàn)都必須執(zhí)行的代碼塊,Throw拋出一個(gè)錯(cuò)誤(類似于VB6的Err.Raise)。 Try
rsRecordset.Update
Catch
LogError ("更新失敗!")
Finally
rsRecordset.MoveNext
End Try
ReadOnly 在屬性聲明中,ReadOnly指示一個(gè)只讀的屬性(只有Get過程的屬性)。 Public ReadOnly Property
StringProperty() As String
WriteOnly 在屬性聲明中,WriteOnly指示一個(gè)只能寫入的屬性(只有Set過程的屬性)。 Public WriteOnly Property
StringProperty() As String
Char 這是VB.NET中的單字符數(shù)據(jù)類型。 Dim chrInitial As Char
Imports 在當(dāng)前代碼模塊中引入指定類。 Imports System.WinForms
Namespace 為模塊指定名稱空間(Namespace)。 Namespace MyApplicationName
Overloads 重載。Overloads表示同一個(gè)函數(shù)名字有多個(gè)版本的實(shí)現(xiàn),編譯器通過函數(shù)的參數(shù)列表區(qū)分它們。 '同一個(gè)模塊之內(nèi)包含如下多個(gè)聲明...
Overloads Sub Display(sIn as String)
Overloads Sub Display(nIn as Long)
Overrides 覆蓋。Overrides表示成員函數(shù)覆蓋當(dāng)前類所繼承的基類中的指定方法。 Inherits MyBaseClass
Overrides Function Name(nID as Long) _
As String
Overridable Overridable表示任意從當(dāng)前類繼承的類都可以覆蓋指定成員函數(shù)。 Overridable Function Name _

首頁 1 2 尾頁
本文糾錯(cuò)】【告訴好友】【打印此文】【返回頂部
將考試網(wǎng)添加到收藏夾 | 每次上網(wǎng)自動訪問考試網(wǎng) | 復(fù)制本頁地址,傳給QQ/MSN上的好友 | 申請鏈接 | 意見留言 TOP
關(guān)于本站  網(wǎng)站聲明  廣告服務(wù)  聯(lián)系方式  站內(nèi)導(dǎo)航  考試論壇
Copyright © 2007-2013 中華考試網(wǎng)(Examw.com) All Rights Reserved
合肥市| 汕头市| 邢台市| 渝中区| 大邑县| 曲松县| 上思县| 东平县| 秭归县| 阳谷县| 隆尧县| 竹北市| 武汉市| 大宁县| 巴东县| 方正县| 乐山市| 鲁山县| 玉树县| 望城县| 钟祥市| 安平县| 嘉荫县| 隆回县| 蕲春县| 丹寨县| 曲阜市| 上犹县| 鄂托克前旗| 阿城市| 北京市| 浮山县| 安义县| 黄山市| 宣武区| 广汉市| 徐汇区| 浦县| 铜梁县| 吉木萨尔县| 高青县|