VB.Net語言方面的改進(轉)

來源:互聯網
上載者:User
    我們在很多的編程論壇或者新聞群組中可以看到C++的擁護者將VB稱為一個玩具語言(Toy Language)。其中VB最被人詬病的是它不真正支援物件導向編程(oop)。
    在新的Visual Basic中,這些都將成為過去。Visual Basic.NET將真正支援oop。繼承(inheritance)、多態(polymorphism)以及重載(overloading)。當然還不止這些。包括一些新的資料結構、結構性的錯誤控制(Error Handing)以及線程。這些都將被新的VB所支援。

繼承
    假設你編寫了一個只包含一個函數的名稱為BaseClass的基本
類:
    
    Function GetCustomerName()
    ' Do some stuff
    End Function

    如果你想建立一個新類,並使用BaseClass中的GetCustomerName
函數。但有不想重寫一編代碼。那麼通過繼承,你可以這樣編寫新類:

    Inherits BaseClass

    Function GetCustomerID()
    ' Do some stuff
    End Function

重載
    重載就是建立兩個具有同樣你名稱但是參數屬性不同的函數的過
程。假設有GetCustomID函數根據輸入輸出使用者的ID號碼。那麼該函數可能有以下兩種類型:

Function GetCustomerID(custname as string) As Integer
' 通過使用者名稱獲得使用者ID
End Function

Function GetCustomerID(purch as long) As Integer
' 根據購物單號碼獲得使用者ID
End Function

通過重載,你就可以根據不同類型的輸入調用同一個函數。
實際上現在的VB在某種程度上提供了重載的功能,考慮下面的函數:

Function GetCustomID(vIN As Variant) As Long
    GetCustomID = vIN
End Function

你可以以下面兩種方式調用

ID = GetCustomID("123")
或者
ID = GetCustomID(123)

    那麼為什麼還要在新版本中引進重載呢?這是因為新的Visual
Basic引進了新的特性:型別安全(default type safety)。在Visual Basic.NET中,Variant類型將不複存在,詳細的介紹看下面關於升級部分的內容。

多態
    多態是在一個類中重新定義一個函數的過程。例如你需要建立一
個基於BaseClass類的子類,但是又需要重新編寫GetCustomerName函數,在新版的VB中,你就可以這樣寫:

Inherits BaseClass

Function GetOrders()
Overrides Function GetOrders()
...
End Function

線程
    新的Visual Basic語言結構部分將包含建立多線程,一個線程建
立的範例如下:

set t = New Thread(New Threadstart
                  (AddressOf(BaseClass.Function1))

    從上面的範例還可以看到,Visual Basic.NET中的AddressOf函
數將真正返回函數的指標。這在進行API調用,例如回呼函數方面將是很有協助的。

錯誤處理(Error Handling)
    Visual Basic.NET的另外一個大的改進就是錯誤處理。Visual
Basic將提供try…catch…finally結構,就象Delphi中的那樣(微軟的原文是:just like those "respectable" languages :-))。例如:

Sub SafeWrite()
Try
  Open "Testfile"
  ...
  Write #1
Catch
   Kill "Testfile"
Finally
   Close #1
End Try
End Sub


升級
    當代碼升級後,Visual Basic.NET會建立一個新的升級工程。下
面通過幾個例子來說明你的代碼做了那些升級

Variant類型到Object類型
    以前版本的Visual Basic支援Variant資料類型,該類型可以設
定為除了固定程度字串外的任何未經處理資料類型和Empty,Error,Nothing和Null。在Visual Basic.NET中,Object
資料類型可以設定為任何未經處理資料類型和Empty,
Error,Nothing,Null和對象指標。當你的工程升級到Visual
Basic.NET後,任何Variant定義都會改變為Object。
同樣,當你在編輯器中插入代碼時,Variant關鍵字也會被替換為
Object。

Integer資料類型到Short資料類型
    在Visual Basic 6.0中,16bit數現在稱為Short。32bit數稱為
Integer(64bit數稱為Long)。當工程升級後,資料定義會做如下改動:

Dim x As Integer
dim y as Long
更改為:

Dim x As Short
dim y as Integer

屬性文法
    Visual Basic.NET對於自訂屬性的文法作樂更加直觀的更改,
將Get和Set合而為一。例如原來的屬性如下:

Property Get MyProperty() As Integer
    m_MyProperty = MyProperty
End Property
Property Let MyProperty(NewValue As Integer)
    m_MyProperty = NewValue
End Property

升級後更改為:

Property MyProperty() As Short
    Get
        m_MyProperty = MyProperty
    End Get
    Set
        m_MyProperty = Value
    End Set    
End Property

VB表單到Windows表單
    Visual Basic.NET包含新的表單包,Windows表單,Windows表單
包含內含菜單編輯器。你的VB表單會升級到Windows表單。

介面
在先前的版本中,公用類介面對於使用者總是隱藏的。在Visual
Basic.NET中,公用類可以在代碼視窗中瀏覽和編輯。

升級報告及注釋
    當工程升級後,升級報告會添加到你的工程中,詳細列出所有升
級後的你所需要對代碼做的更改。同時代碼中會加入注釋提示你注意任何潛在的問題。這些注釋自動出現在
Visual Basic.NET的工作清單中。


相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。