国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

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

2024-07-10 13:02:31
字體:
來源:轉載
供稿:網友
    我們在很多的編程論壇或者新聞組中可以看到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的任務列表中。
注冊會員,創建你的web開發資料庫,
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 新平| 韩城市| 剑阁县| 孙吴县| 尉氏县| 徐州市| 瑞金市| 讷河市| 毕节市| 大连市| 南川市| 永吉县| 固始县| 屯门区| 霸州市| 锡林郭勒盟| 芮城县| 融水| 玛沁县| 华蓥市| 龙江县| 周口市| 安宁市| 长汀县| 依兰县| 汤原县| 兴义市| 涿鹿县| 普宁市| 临江市| 桂阳县| 额敏县| 静安区| 巴林右旗| 平舆县| 中卫市| 侯马市| 白山市| 诏安县| 红河县| 崇信县|