直播中
VB.NET的面向?qū)ο蠊δ芤呀?jīng)向各個(gè)方向擴(kuò)展,甚至深入到了語言本身——在VB.NET中,一切都是對(duì)象。它意味著和以前的VB版本相比,我們從VB.NET本身獲得的支持和功能要多得多,求助于Windows API的時(shí)候?qū)⒏?。例如,在以前的VB版本中,我們用LoadPicture方法裝入一個(gè)圖形,用Line方法(或者其他速度更快的API函數(shù))畫線;而在VB.NET中,我們用System.Drawing對(duì)象創(chuàng)建和處理圖形。下面這段代碼用System.Drawing對(duì)象在窗體上顯示一個(gè)圖形:
picshowpicture.Image = _
system.Drawing.Image.FromFile( _
"c:test.bmp")
注意,VB.NET的“一切都是對(duì)象”可能會(huì)使代碼變得冗長(zhǎng)??紤]下面這個(gè)語句,它在一個(gè)圖形對(duì)象上面畫一條黃綠色的線:
objgraphics.DrawLine(system.Drawing. _
Pens.Chartreuse, 0, 0, 100, 100)
語句雖然變長(zhǎng),但它獲得的好處是:更加靈活,更加容易使用。以前,要實(shí)現(xiàn)一些較為復(fù)雜的功能往往要深入研究文檔,通常還要求助于API。現(xiàn)在,所有相關(guān)的功能集都封裝到了對(duì)象之中。用對(duì)象封裝功能還有額外的優(yōu)點(diǎn)——對(duì)象以一種極為優(yōu)美的形式把相關(guān)功能組織了起來,所以瀏覽各個(gè)對(duì)象、看看它們到底做些什么,事實(shí)上也是一件有趣的事情。
Visual Basic.NET的面向?qū)ο筇厣珟砹嗽S多切實(shí)的好處。大多數(shù)情況下,和以前的VB版本相比,VB.NET面向?qū)ο蟮谋拘砸约八鼘?duì)繼承的支持使得創(chuàng)建某些類型的應(yīng)用更加快速和方便。然而,雖然我們可以使用繼承以及其他.NET的新功能,比如自由線程,但這些功能并不是一定得使用不可。正如所有其它語言的功能,我們必須使用的功能是那些對(duì)給定情形來說最具有意義的功能。
自由線程或許有必要特別說明。VB6允許通過單元線程創(chuàng)建多線程的服務(wù),但VB從來沒有支持過創(chuàng)建自由線程的客戶程序。VB.NET改變了所有這一切?,F(xiàn)在,創(chuàng)建自由線程的應(yīng)用已經(jīng)是一件非常平凡和普通的事情。它是如此平凡,以至于完全可以預(yù)料有些程序員在為應(yīng)用加入自由線程時(shí)不會(huì)理解它的具體細(xì)節(jié)。啟動(dòng)新的線程只要很少的幾行代碼——只需把方法的地址傳遞給線程對(duì)象,該方法就會(huì)啟動(dòng)一個(gè)新的線程。這無疑極為實(shí)用和方便,但必須注意的是:這些功能只適合特定的情形,了解哪些情形適用這些功能以及如何恰到好處地運(yùn)用這些功能屬于開發(fā)者自己的責(zé)任。坦率地說,許多開發(fā)者會(huì)因?yàn)闉E用繼承和自由線程而給自己帶來麻煩,希望這中間并不包括你。