成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

VB.NET語法快速入門

開發(fā) 后端
VB.NET大家都知道,但它的語法以及怎么具體的去用,大家可能不能全部明白,本文主要簡單介紹了VB.NET語法的一些使用以及注意事項,希望對大家的學(xué)習帶來收益。

很久以來我們都知道,VB因為缺乏完善的面向?qū)ο笾С帧⑷狈Ω咝У腻e誤處理機制和性能表現(xiàn)不佳,因而一直受到某些人的嘲笑。VB.NET語法將徹底改變這種情況。

然而,VB.NET在這些方面的改進也要付出代價,許多舊的代碼需要手工進行轉(zhuǎn)換才能在VB.NET下運行。

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

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

表A:VB.NET語法對比舊語法 新語法 說明窗體裝載事件,類初始化事件 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 這個變化只是名稱上的簡單變化:從Print變?yōu)閃rite和WriteLine. Wend End While VB.NET推薦使用While循環(huán)而不是Do循環(huán)。

為了讓VB.NET語言的數(shù)據(jù)類型和其他。VB.NET語言的數(shù)據(jù)類型相匹配,Microsoft修改了整數(shù)類數(shù)據(jù)類型的表示方法,并加入了一個新的數(shù)據(jù)類型。這些改動對于進行外部調(diào)用的方法尤其重要(比如API調(diào)用)。

例如,如果被調(diào)用函數(shù)需要一個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)鍵詞,代之以“框架類”。之所以要進行這種替換,是因為框架類中的功能對所有的.NET語言都有效。下表列出了部分受影響的關(guān)鍵詞。

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

  1. Circle System.Drawing.Graphics DrawEllipse  
  2.       
  3.     Line System.Drawing.Graphics DrawLine  
  4.       
  5.     Atn System.Math Atan  
  6.       
  7.     Sgn System.Math Sign  
  8.  
  9.     Sqr System.Math Sqrt  
  10.       
  11.     Rnd Microsoft.VisualBasic.Compatibility.VB6 Rnd  
  12.       
  13.     Round Microsoft.VisualBasic.Compatibility.VB6 Round  
  14.       
  15.     Lset System.String PadRight  
  16.       
  17.     Rset System.String PadLeft  
  18.       
  19.     DoEvents System.Winforms.Application DoEvents  
  20.       
  21.     VarType System.Object GetType(返回類Type的對象,其中包含了可提取出信息的屬性)  
  22.  

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

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

  1. Redim sName() As String 

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

表E:VB.NET的新關(guān)鍵詞
關(guān)鍵詞 用途 簡單例子
Inherits 指向基類,用于實現(xiàn)繼承。 Inherits System.WinForms.Form
MyBase 在子類的代碼中,MyBase引用基類。 StringProperty = MyBase.StringProperty
Shared Shared表示類的所有實例共享類里面的變量。

  1. Public Shared BaseLocation As String  
  2.     Try  
  3.     Catch  
  4.     Finally  

Throw 這是新的錯誤處理關(guān)鍵詞。Try開始一個啟用錯誤控制的代碼塊,Catch標識一個對特定錯誤進行處理的代碼塊,F(xiàn)inally開始一個不管錯誤是否出現(xiàn)都必須執(zhí)行的代碼塊,Throw拋出一個錯誤(類似于VB6的Err.Raise)。

  1. Try  
  2.     rsRecordset.Update  
  3.     Catch  
  4.     LogError ("更新失??!")  
  5.     Finally  
  6.     rsRecordset.MoveNext  
  7.     End Try  
  8.     ReadOnly 在屬性聲明中,ReadOnly指示一個只讀的屬性(只有Get過程的屬性)。 Public ReadOnly Property  
  9.     StringProperty() As String  
  10.     WriteOnly 在屬性聲明中,WriteOnly指示一個只能寫入的屬性(只有Set過程的屬性)。 Public WriteOnly Property  
  11.     StringProperty() As String  
  12.     Char 這是VB.NET中的單字符數(shù)據(jù)類型。 Dim chrInitial As Char  
  13.     Imports 在當前代碼模塊中引入指定類。 Imports System.WinForms  
  14.     Namespace 為模塊指定名稱空間(Namespace)。 Namespace MyApplicationName  
  15.     Overloads 重載。Overloads表示同一個函數(shù)名字有多個版本的實現(xiàn),編譯器通過函數(shù)的參數(shù)列表區(qū)分它們。 '同一個模塊之內(nèi)包含如下多個聲明...  
  16.     Overloads Sub Display(sIn as String)  
  17.     Overloads Sub Display(nIn as Long)  
  18.     Overrides 覆蓋。Overrides表示成員函數(shù)覆蓋當前類所繼承的基類中的指定方法。 Inherits MyBaseClass  
  19.     Overrides Function Name(nID as Long) _  
  20.     As String  
  21.     Overridable Overridable表示任意從當前類繼承的類都可以覆蓋指定成員函數(shù)。 Overridable Function Name _  
  22.     (nID as Long) As String  
  23.     MustOverride MustOverride表示任意從當前類繼承的類都必須覆蓋指定成員函數(shù)。 MustOverride Function Name _  
  24.     (nID as Long) As String  
  25.  
  26.     Protected Protected表示成員函數(shù)只能從當前類的派生類訪問。 Protected Sub Clear()  
  27.  

在以前的VB中,直至VB 4為止, Let、Set和Get屬性過程是分離的。VB.NET把同一屬性的屬性過程放到了一起:

  1. Private msMyStringProperty As String  
  2.     ' 聲明區(qū)  
  3.     Public Property MyStringProperty As String  
  4.     Get  
  5.     MyStringProperty = msMyStringProperty 
  6.     End Get  
  7.  
  8.     Set  
  9.     msMyStringProperty = MyStringProperty  
  10.     End Set  
  11.     End Property  
  12.  

VB.NET不再有Let屬性過程,因為所有賦值語句的語法(無論是對象還是非對象)都已經(jīng)一樣。

語言方面的改動遠遠超過了對體系結(jié)構(gòu)的改動。對于大多數(shù)人來說這些改動都有意義,但仍有人對某些改動存有異議。例如,在以前的版本中,許多任務(wù)可以用多種不同的方法完成,統(tǒng)一的編碼標準要么不存在,要么很難執(zhí)行。為了“清理”VB語言,Microsoft對VB作了一些重大的改動,許多以前可以有多種實現(xiàn)方法的任務(wù)現(xiàn)在只有一種方法。

除了前面幾個表格列出的內(nèi)容之外,下面是一些特別需要注意的地方。

首先,向過程參數(shù)傳遞數(shù)據(jù)的默認方式由原來的傳遞引用(ByRef)變成了傳遞值(ByVal),這是一個很重要的改動。通過引用傳遞參數(shù)比通過值傳遞參數(shù)面臨著更多的危險,這種危險在于被調(diào)用過程可能無意地改變參數(shù)的值。VB.NET仍舊允許以引用方式傳遞參數(shù),但默認參數(shù)傳遞方式的改變意味著程序必須作相應(yīng)的調(diào)整。

第二,VB.NET中不再有Set語句,把對象引用賦給變量現(xiàn)在只需一個等號就可以了,對象可以象任何其他值一樣對待。雖然省略Set簡化了代碼,但也有一個附帶的影響:默認屬性不再有效。

例如,下面這種屬性值引用方法不再合法:

Text1 = "這是對象的默認屬性值。"

相反,屬性值必須按照如下方式顯式引用:

Text1.Text = "這是對象的默認屬性值。"

從表面上看來,VB.NET作這種要求似乎沒有必要。但事實上,它對于擺脫默認屬性來說卻是必要的。例如,假設(shè)有一個名字為objFoo的對象變量,由于沒有了Set語句,假若屬性值仍舊可以象原來一樣引用,下面這個語句到底是什么意思就很難確定了: 

  1. objFoo = Text1 

這個語句是設(shè)置了一個對Text1的引用,還是把Text1的Text屬性值賦給了objFoo?我們無法作出判斷,編譯器也同樣不能判斷。因此,拋棄Set語句也就意味著必須放棄默認屬性值。

NET中最不讓人喜歡的改動:Microsoft改變了一些早就在使用的數(shù)據(jù)類型的含義。在。NET中,Integer變成了32位,而Long則是64位??梢韵胂?,這種改變將導(dǎo)致程序員頻繁地用錯變量類型。例如,調(diào)用某個API函數(shù)時應(yīng)該使用16位的Integer還是使用32位的Integer?但愿Microsoft能夠重新考慮這個決定,采用一些新的變量類型名字,如Int32和Long64.

VB.NET引入了Option Strict關(guān)鍵詞。Option Strict關(guān)鍵詞用于替代Option Explicit.原來的VB允許把一個數(shù)字值賦給字符串變量,或者進行其它類似的不正常賦值操作,Option Strict結(jié)束了這種情況。聲明Option Strict告訴Visual Basic.NET不要進行任何強制的類型轉(zhuǎn)換。當然,VB.NET也不是完全限制了類型自動轉(zhuǎn)換:它允許進行向下的自動類型轉(zhuǎn)換(Cast),但不支持向上的自動類型轉(zhuǎn)換。例如,如果不是使用“sngvariable = CSng(dblvariable)”這類語句進行顯式的類型轉(zhuǎn)換,聲明為Single的變量不能設(shè)置為Double變量的值,因為它可能導(dǎo)致數(shù)據(jù)丟失;然而,Double變量可以直接設(shè)置為Single類型變量的值,且無需顯式地進行類型轉(zhuǎn)換,因為這里不存在數(shù)據(jù)丟失問題。使用Option Strict能夠幫助開發(fā)者減少許多錯誤,包括許多難以調(diào)試的錯誤。附帶說明:使用Option Strict時不允許再使用延遲綁定。

本文主要簡單介紹了VB.NET語法的一些使用以及注意事項,希望對大家的學(xué)習帶來收益。

【編輯推薦】

  1. 解析 VB.NET如何連接數(shù)據(jù)庫
  2. 談?wù)?VB.NET數(shù)組的使用
  3. 淺談 VB.NET中的跨進程消息鉤子
  4. 十分鐘 教你如何使用VB程序
  5. VB.NET 路在何方?
責任編輯:仲衡 來源: csai
相關(guān)推薦

2009-10-09 16:00:34

VB6.0開發(fā)

2010-01-22 17:55:23

VB.NET語法糖

2009-10-23 14:06:07

VB.NET類對象

2009-11-02 13:54:27

VB.NET shel

2009-10-30 13:31:06

VB.NET名空間

2009-10-28 15:01:59

VB.NET SHEL

2009-10-28 13:23:52

VB.NET可選參數(shù)

2009-11-02 12:35:10

VB.NET追加文件

2009-10-27 09:45:03

VB.NET數(shù)組

2010-01-11 09:53:28

VB.NET語法

2009-10-28 13:24:25

VB.NET文件

2009-11-02 17:54:44

VB.NET數(shù)組

2009-11-02 15:49:23

VB.NET顯示系統(tǒng)信

2009-10-21 09:40:23

VB.NET搜索

2009-11-10 16:55:05

VB.NET調(diào)用API

2009-10-27 14:32:45

VB.NET類型級命名

2009-10-30 10:47:48

VB.NET垃圾收集器

2009-11-10 13:43:28

VB.NET Comm

2009-10-27 14:50:25

VB.NET控件數(shù)組

2009-10-29 14:02:24

VB和VB.NET比較
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 日韩中文字幕视频在线观看 | 国产a视频 | www.久久精品视频 | 国产一级免费视频 | 成人三级在线观看 | 成人在线视频免费观看 | 羞羞视频在线免费 | 国产精品五区 | 久草新在线 | 一级黄色毛片免费 | 日韩乱码在线 | 日韩中文字幕一区二区 | 精精国产xxxx视频在线播放7 | 欧美日韩电影一区二区 | 午夜激情免费视频 | 日韩av中文 | 九九热精品在线 | 亚洲一区二区久久久 | 午夜激情网 | 精品国产青草久久久久福利 | 欧美综合一区二区三区 | 亚洲精品91 | 日本精品视频 | 毛片com | 欧美精品在线视频 | 久久久久久久久久久久久久国产 | 精品久久一 | 久久国产视频网 | 成人免费日韩 | 久久亚洲一区二区三区四区 | 伊人性伊人情综合网 | 成人在线免费观看视频 | 国产欧美精品一区二区 | 91精品一区二区 | 国产一区在线免费 | 欧美日韩视频在线播放 | 成人中文字幕在线观看 | 在线免费av观看 | 九九热在线视频观看这里只有精品 | 亚洲精彩免费视频 | 亚洲视频免费在线看 |