分享
 
 
 

走近VB.Net(二) 再谈函数调用

王朝vb·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

走近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

不是更加的富有这些么。或许微软会象传言的在BETA2中恢复一些VB6的东西,但我并不开心。或许有人说VB有很多的学JAVA(大概学微软的情况总是很少的,人人都喜欢在实际上嫌贫爱富,在口头上指点强者,讥嘲弱者得到满足)但是仅仅一个面向对象足以支撑net计划么,如果真的是这样,微软早就应该让位于其他软件商了。就是面向对象,也有一个是不是更强大的区别,而实际上他是更强大了。或许你不会去使用他,但是在若于年后,一些新的程序员(在今天或许尚没有接触过编程)将掌握一门如此强大的语言。。。。。。。。

我们看看如何的改变:

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将更简单,不须要研究一些很难的东西。

写一个程序将会象写一篇文章那样自由,他也更难,他让你自已决定怎么做,学历经验或许不再是最重要的,他让你在智慧的空间驰骋。。。。。。。。。

VB.Net中文站 http://vbnetcn.126.com

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有