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

首頁 > 編程 > .NET > 正文

走近VB.Net(二) 再談函數調用

2024-07-10 13:01:25
字體:
來源:轉載
供稿:網友




走近vb.net(二) 再談函數調用
在vb6中如果你想調用一個對話框,首先你知道要使用vb內置的msgbox函數,你甚至于使用api,大部分人樂于使用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只是一個代號,在linux中不是也有一個alias么?,就是一個別名了。
為什么vb.net令大部分老的程序員感到憤怒呢?這也并不是完全的因循守舊,一個初入門的編程人員是無法想象一門完整的程序語言所需要經年累月積累的知識。然而現在這一切都改變了,就象上面提到的一些最基本的知識也不再基本。然而你為什么樂于使用api呢,你會回答,他更靈活更有挑戰性,但是vb.net
不是更加的富有這些么?;蛟S微軟會象傳言的在beta2中恢復一些vb6的東西,但我并不開心?;蛟S有人說vb有很多的學java(大概學微軟的情況總是很少的,人人都喜歡在實際上嫌貧愛富,在口頭上指點強者,譏嘲弱者得到滿足)但是僅僅一個面向對象足以支撐net計劃么,如果真的是這樣,微軟早就應該讓位于其他軟件商了。就是面向對象,也有一個是不是更強大的區別,而實際上他是更強大了?;蛟S你不會去使用他,但是在若于年后,一些新的程序員(在今天或許尚沒有接觸過編程)將掌握一門如此強大的語言。。。。。。。。
我們看看如何的改變:
shared function <system.runtime.interopservices.dllimport("user32.dll")> 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 <system.runtime.interopservices.dllimport("user32.dll")> 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.winforms.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將更簡單,不須要研究一些很難的東西。
寫一個程序將會象寫一篇文章那樣自由,他也更難,他讓你自已決定怎么做,學歷經驗或許不再是最重要的,他讓你在智慧的空間馳騁。。。。。。。。。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 吉首市| 永兴县| 清丰县| 博爱县| 浠水县| 驻马店市| 子长县| 忻城县| 宣威市| 驻马店市| 沂水县| 平顺县| 唐山市| 静宁县| 平远县| 鹤峰县| 顺平县| 太湖县| 英超| 灵丘县| 洛浦县| 墨竹工卡县| 汝南县| 永清县| 紫云| 隆林| 云霄县| 图们市| 云安县| 双江| 马公市| 平泉县| 忻城县| 海南省| 巩义市| 灵寿县| 饶河县| 阜平县| 鹤岗市| 化州市| 兴化市|