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

首頁 > 編程 > .NET > 正文

Visual Basic .NET中的語言創(chuàng)新

2024-07-10 13:07:37
字體:
供稿:網(wǎng)友

visual basic .net中的語言創(chuàng)新
引言

要快速地創(chuàng)建企業(yè)web應(yīng)用程序,開發(fā)人員必須依靠可伸縮的、健壯的、可重用的商務(wù)邏輯。在過去的幾年中,面向?qū)ο蟮某绦蛟O(shè)計已經(jīng)成為了創(chuàng)建滿足這些需求的系統(tǒng)的主要技術(shù)。使用面向?qū)ο蟮某绦蛟O(shè)計語言可以使得大型系統(tǒng)更容易理解,更容易調(diào)試,并且更新速度更快。

為了使visual basic開發(fā)人員從面向?qū)ο蟮脑O(shè)計中獲益,簡化企業(yè)web應(yīng)用程序的開發(fā),將在visual basic的下一個版本 - visual basic .net中支持包括實現(xiàn)繼承在內(nèi)所有的面向?qū)ο蟮恼Z言特性。利用這些新的語言特性,visual basic .net將迅速有效地提供開發(fā)企業(yè)關(guān)鍵的應(yīng)用程序所需的所有強大功能,而同時保持使其成為世界上最流行的開發(fā)工具的即時可達性。

visual basic .net將提供第一流的面向?qū)ο蟮?、擁有新特性的程序設(shè)計語言,如實現(xiàn)繼承、重載和帶參數(shù)的構(gòu)造函數(shù)。此外,開發(fā)人員將能夠創(chuàng)建高度可伸縮的具有明確的自由線程(free threading)代碼,以及加入了現(xiàn)代化的語言結(jié)構(gòu),如結(jié)構(gòu)化的異常處理的高度可維護的代碼。visual basic將提供開發(fā)人員使用下面的新特性,創(chuàng)建健壯的、可伸縮的分布式web應(yīng)用程序所需的所有語言特性:

新的面向?qū)ο蟮某绦蛟O(shè)計特性

繼承
重載
帶參數(shù)的構(gòu)造函數(shù)
其他現(xiàn)代化的語言特性

自由線程
結(jié)構(gòu)化的異常處理
嚴格的類型檢查
共享成員
初始化工具
語言創(chuàng)新的歷史

visual basic語言有一個很長的更新歷史,它反映了windows平臺中的根本性的變化。例如,使quickbasic?為支持windows 3.0 gui開發(fā)所作出的重大變化導(dǎo)致了visual basic的首次發(fā)布。在visual basic 4.0中,向基于com的程序設(shè)計轉(zhuǎn)移導(dǎo)致了用于創(chuàng)建dll的語言結(jié)構(gòu)的出現(xiàn)。而在visual basic 5.0中,語言發(fā)展為支持創(chuàng)建com控件。

利用每次成功的修訂,visual basic的普及有了飛速的增長。新的面向?qū)ο蟮恼Z言特性提供給創(chuàng)建企業(yè)web應(yīng)用程序的開發(fā)人員的啟動功能,將最有可能繼續(xù)這種趨勢。

面向?qū)ο蟮某绦蛟O(shè)計

對于傳統(tǒng)的結(jié)構(gòu)化的程序設(shè)計(數(shù)據(jù)與程序式的代碼分別存儲),存在幾個缺點。作為結(jié)構(gòu)化的代碼編寫的任何代碼都不是模塊化的。由于數(shù)據(jù)元素可以從任何代碼中訪問,因此在沒有開發(fā)人員的知識的情況下,修改數(shù)據(jù)是不可能的。這可能會導(dǎo)致非常難調(diào)試的運行錯誤。此外,維護也可能會成為一項實質(zhì)性的任務(wù)。試圖理解使用程序式設(shè)計改變一行代碼的全局影響可能會非常困難。最后,依靠程序員來管理代碼和數(shù)據(jù)將導(dǎo)致非常低的重用率。

面向?qū)ο蟮某绦蛟O(shè)計(oop,object-oriented programming)解決了這些問題。它將數(shù)據(jù)以及在數(shù)據(jù)上采取行動的方法打包成一個稱為對象的單位中。一個對象的數(shù)據(jù)可以被隱藏起來,以避免出現(xiàn)未授權(quán)的修改。此外,這個對象提供了一組公共方法對這個數(shù)據(jù)進行操作。這種概念被稱為封裝。由于實現(xiàn)細節(jié)與接口分離,底層的程序設(shè)計邏輯可以在日后修改,而不用擔(dān)心破壞調(diào)用這個對象的代碼。

oop還允許開發(fā)人員通過繼承重用代碼和數(shù)據(jù)。通過繼承預(yù)定義的對象,開發(fā)人員可以更迅速地構(gòu)造更復(fù)雜的應(yīng)用程序。由于編寫新代碼通常有可能加進錯誤,因此重用代碼可以使出現(xiàn)額外錯誤的機會降到最低。

為了解決這些需求,visual basic .net將提供這些額外的語言特性,這將使得它稱為第一流的具有上述的所有好處的、面向?qū)ο蟮某绦蛟O(shè)計語言。

繼承

一貫地,對visual basic最突出的請求是支持實現(xiàn)繼承(implementation inheritance)。internet時代的程序開發(fā)需要快速的編譯和大量的重用。visual basic 現(xiàn)在包括了包括可視化窗體繼承在內(nèi)的全部實現(xiàn)繼承。

開發(fā)人員可以使用新的關(guān)鍵字inherits來從一個已有的類派生。

class1
    function getcustomer()
    ...
    end function

class2
    inherits class1
    function getorders()
    ...
    end function

inherits語句支持與繼承相關(guān)的所有可視化屬性。派生類的實例支持這個基類所支持的所有方法和接口。當(dāng)然,派生類可以擴展基類所支持的方法和接口集合。

派生類可以使用關(guān)鍵字overrides重載基類中定義的方法。為了減少程序設(shè)計錯誤,visual basic可以防止你意外地重載一個函數(shù);只有被聲明為"overridable(可重載)"地函數(shù)才能在派生類中被重載。

重載

visual basic現(xiàn)在允許進行函數(shù)重載,這使得開發(fā)人員可以創(chuàng)建有相同名稱,但卻有不同的自變量類型的、不同版本的sub或function。

當(dāng)你的對象模型規(guī)定,對于操作不同數(shù)據(jù)類型的過程使用類似的名稱時,重載尤其有用。例如,一個可以顯示幾種數(shù)據(jù)類型的類可能會有如下所示的display過程:

overloads sub display (thechar as char)
...
overloads sub display (theinteger as integer)
...
overloads sub display (thedouble as double)

如果沒有重載,你將不得不為每個過程使用截然不同的名稱,或者使用一個variant參數(shù)。重載提供了一個處理多種數(shù)據(jù)類型的更明確、更有效的方法。

帶參數(shù)的構(gòu)造函數(shù)

帶參數(shù)的構(gòu)造函數(shù)(或簡單地稱為構(gòu)造函數(shù))允許你創(chuàng)建類的新的實例,而同時將變量傳遞給新的實例。構(gòu)造函數(shù)對于面向?qū)ο蟮某绦蛟O(shè)計至關(guān)重要,因為它們允許實例的創(chuàng)造者向用戶定義的構(gòu)造代碼傳遞參數(shù)。它們通過允許在單個表達式中創(chuàng)建和初始化一個新的實例,簡化了客戶代碼。

其他現(xiàn)代化的語言特性

visual basic .net添加了許多額外的結(jié)構(gòu),簡化了更健壯、更具可伸縮性的應(yīng)用程序的開發(fā)。這些特性包括自由線程、結(jié)構(gòu)化的異常處理、嚴格的類型安全性,以及生產(chǎn)力特性,如初始化工具和共享成員。

自由線程

今天當(dāng)開發(fā)人員在visual basic中創(chuàng)建應(yīng)用程序時,他們編寫的代碼是同步的。這意味著,每行代碼必須在下一行代碼之前執(zhí)行。當(dāng)開發(fā)web應(yīng)用程序時,可伸縮性是關(guān)鍵。開發(fā)人員需要支持并發(fā)處理的工具。

通過包含自由線程,開發(fā)人員可以產(chǎn)生一個執(zhí)行某些長期任務(wù)、執(zhí)行復(fù)雜的查詢或運行多部分的計算的線程,而應(yīng)用程序的其他部分則繼續(xù)執(zhí)行,從而提供了異步處理功能。

sub createmythread()
    dim b as backgroundwork
    dim t as thread
    set b = new backgroundwork()
    set t = new thread
        (new threadstart(addressof b.doit))
    t.start
end sub
class backgroundwork
    sub doit()
    …
    end sub
end class

結(jié)構(gòu)化的異常處理

開發(fā)企業(yè)應(yīng)用程序需要構(gòu)造可重用的、可維護的組件。在以前版本的visual basic中,basic語言的一個具有挑戰(zhàn)性的方面就是支持錯誤處理。開發(fā)人員發(fā)現(xiàn),一個一致的錯誤處理模式意味著可以大量的復(fù)制代碼。使用現(xiàn)有的on error goto語句進行錯誤處理使大型應(yīng)用程序的開發(fā)和維護速度變得很慢。它的名字就反映了某些問題:正如goto所暗示的,當(dāng)一個錯誤發(fā)生時,控制被轉(zhuǎn)移給子程序中某個標(biāo)記的位置。一旦錯誤代碼運行,通常它必須通過標(biāo)準(zhǔn)的goto依靠另一個清除位置轉(zhuǎn)移,它最終將使用另一個goto或exit來推出這個過程。利用各種resume和next組合快速地處理幾個不同的錯誤,將產(chǎn)生難讀地代碼,并且在執(zhí)行路徑?jīng)]有完全考慮到時將會導(dǎo)致出現(xiàn)頻繁的錯誤。

利用try...catch...finally,這些問題迎刃而解,開發(fā)人員可以嵌套他們的異常處理,并且有一個控制結(jié)構(gòu)用于編寫在正常和異常條件下都執(zhí)行的清除代碼。

sub seh()
    try
        open "testfile" for output as #1
      write #1, customerinformation
    catch
         kill "testfile"
    finally
      close #1
    end try
end sub

嚴格的類型檢查

今天,visual basic語言在其產(chǎn)生的隱含類型強制方面非常自由。對于變量以及傳遞而非引用的參數(shù)類說,visual basic編譯器通過產(chǎn)生運行強制,可以將允許幾乎所有的數(shù)據(jù)類型轉(zhuǎn)換成任何其他類型。如果要轉(zhuǎn)換的數(shù)值不能在沒有數(shù)據(jù)丟失的情況下進行轉(zhuǎn)換,則運行強制操作將實效。通過添加一個新的編譯選項,visual basic可以對于可能會在運行時引起錯誤的任何強制生成編譯錯誤。選項"strict"通過在需要進行轉(zhuǎn)換而轉(zhuǎn)換可能會在運行時失敗,或像數(shù)字類型和字符串之間的自動類型轉(zhuǎn)換不是用戶所預(yù)期的時候生成錯誤,從而提高了類型安全性。

共享成員

共享成員是指可以被類的所有實例共享的類的數(shù)據(jù)和函數(shù)成員。在一個類的所有實例間共享一個數(shù)據(jù)成員或函數(shù)成員的實例,在使用繼承的visual basic應(yīng)用程序中是必需的。一個共享的數(shù)據(jù)成員獨立于這個類的任何一個具體的實例而存在。一個共享的方法是與普通的方法不同,它并不被隱含地傳遞類的實例。由于這個原因,在一個共享的方法中,不允許不合格的引用非共享的數(shù)據(jù)成員。公共的共享成員可以遠程訪問,并且可以從這個類的某個實例中對它們進行晚綁定。

初始化工具

visual basic .net支持在變量被聲明的一行中對其進行初始化。初始化可以用在任何位置,包括框架結(jié)構(gòu)內(nèi)部。包括初始化工具的過程層次的聲明的語義,與緊跟一個賦值語句的聲明語句相同。換句話說,這個語句"

dim x as integer = 1

與下面的這些語句意義相同:

dim x as integer
x = 1

結(jié)論

visual basic現(xiàn)在已經(jīng)成了第一流的面向?qū)ο蟮某绦蛟O(shè)計語言。使用visual basic .net,開發(fā)人員將能夠創(chuàng)建高度可伸縮的、具有明確的自由線程(free threading)代碼。他們的代碼使用了現(xiàn)代化的語言結(jié)構(gòu),如結(jié)構(gòu)化的異常處理(structured exception handling),具有很高的可維護性。visual basic將提供開發(fā)人員創(chuàng)建健壯的、可伸縮的分布式web應(yīng)用程序所需的所有特性。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 白城市| 石城县| 乐都县| 庆安县| 桂平市| 乌拉特中旗| 青神县| 佳木斯市| 诸暨市| 新兴县| 始兴县| 青田县| 湟中县| 綦江县| 尉氏县| 新乐市| 钟山县| 凌云县| 玛曲县| 莲花县| 龙胜| 朝阳市| 灵武市| 昌图县| 尤溪县| 百色市| 邵东县| 若尔盖县| 汉源县| 额敏县| 双城市| 太仆寺旗| 诏安县| 余干县| 获嘉县| 农安县| 都匀市| 杭锦后旗| 中宁县| 吉林省| 武穴市|