走近VB.Net(二) 再談函式呼叫 (轉)

gugu99發表於2008-01-21
走近VB.Net(二) 再談函式呼叫 (轉)[@more@]

 

  走近(二) 再談
  在中如果你想呼叫一個對話方塊,首先你知道要使用vb內建的MsgBox函式,你甚至於使用,大部分人樂於使用API。如下:
Public Declare Function MessageBox Lib "user32" Alias "MessageBoxA" (ByVal hwnd As Long, ByVal lpText As String, ByVal lpCaption As String, ByVal wType As Long) As Long。我想目前的文章很少介紹一些初級的東級,我正好水平有限,順便談一點初級知識,API 與普通的函式一樣返回一個值給函式的名稱,這個括號後的最後一個as long就是定義這個函式(messagebox)的資料型別為long 。所以每次呼叫的時候先有宣告一個變數,dim xxx as long再如下:xxx=messagebox(這個括號裡就填相應的引數,如第一個引數是ByVal hwnd As Long,這個是要你填一個long型別的控制程式碼,可以先打一個0,打一個逗號,寫入第二個string的字元資料,這個就是對話方塊的內容了……………….)。實際上在大部分時候並沒有使用返回的值,只是作為一個呼叫的方法。 Lib"user32"表示使用user32的dll,alias"messageboxA"就是API函式了,messagebox只是一個代號,在中不是也有一個alias麼?,就是一個別名了。
為什麼VB.Net令大部分老的員感到憤怒呢?這也並不是完全的因循守舊,一個初的人員是無法想象一門完整的程式語言所需要經年累月積累的知識。然而現在這一切都改變了,就象上面提到的一些最基本的知識也不再基本。然而你為什麼樂於使用API呢,你會回答,他更靈活更有挑戰性,但是VB.Net
不是更加的富有這些麼。或許會象傳言的在BETA2中恢復一些VB6的東西,但我並不開心。或許有人說VB有很多的學(大概學微軟的情況總是很少的,人人都喜歡在實際上嫌貧愛富,在口頭上指點強者,譏嘲弱者得到滿足)但是僅僅一個面向足以支撐net計劃麼,如果真的是這樣,微軟早就應該讓位於其他商了。就是物件導向,也有一個是不是更強大的區別,而實際上他是更強大了。或許你不會去使用他,但是在若於年後,一些新的程式設計師(在今天或許尚沒有接觸過程式設計)將掌握一門如此強大的語言。。。。。。。。
我們看看如何的改變:
Shared Function MessageBoxA(ByVal hwnd As Integer, ByVal text As String, ByVal lpcaption As String, ByVal wtype As Integer) As Integer
  End Function
  首先integer被作為32位資料替代了long(long是64位)
  System是Net語言中的一個族,System.Runtime.InteropServices是system中的一個類。System.Runtime.InteropServices.DLLimpor是其中的一個方法。呼叫DLL的API
介面,這個的意思就是vb6的lib"user32", share是共享的意思,例如:
  Public Class classA
  Shared Function MessageBoxA(ByVal h As Integer, ByVal m As String, ByVal c As String, ByVal type As Integer) As Integer
  End Function
End Class
你可以這樣呼叫 classA.MessageboxA 但是如果沒有這個share 在class後打點就沒有MessageboxA的成員出現了
現在你就象以前一樣的使用他吧。

其實上面這個方法並不正確,我們仍舊要使用API宣告,只是換了一各形式

如果你認為這就是VB.Net就錯了,看看這個:
system.s.MessageBox.Show("對話內容寫在這裡", "標題寫在這裡", messagebox.OK BitOr messagebox.IconAsterisk)

這就是物件導向,你已經完成了所有的任務。不需要任何的API宣告。不需要寫多餘的程式碼。

messagebox.IconAsterisk=驚歎號圖示
messagebox.IconError=錯誤圖示
messagebox.IconExclamation=警告圖示
messagebox.IconHand=錯誤圖示
messagebox.IconInformation=提示圖示

所經點NET就是打點到達,在族後面打點,在類後面打點,在物件後面打點。第二個問題就是類與類之間相互的關係,Net在網上處理人與人的關係,在程式語言中處理類與類的關係。倒底是加不加share,倒底是類後面打點,還是Dim成一個物件(把他當一個變數吧)再說,是等於class,還是New class.是dim xxx as class=new class 還是dim xxx as new class
就是這樣VB.Net將更簡單,不須要研究一些很難的東西。
寫一個程式將會象寫一篇文章那樣自由,他也更難,他讓你自已決定怎麼做,學歷或許不再是最重要的,他讓你在智慧的空間馳騁。。。。。。。。。

 VB.Net中文站


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10748419/viewspace-997843/,如需轉載,請註明出處,否則將追究法律責任。

相關文章