正确理解VB.NET函数调用

开发 后端
VB.NET函数调用的方法对于初学者来说可能是一个比较难掌握的知识点。我们在学习的过程中需要在实际代码编写中去解读这一方法的应用。

VB.NET编程语言中的函数应用是一个非常复杂的步骤,很多内容都需要我们在实践中慢慢积累经验,去对此进行详细解读。在这里我们先来谈谈有关VB.NET函数调用的一些方法,希望对大家有所帮助。#t#

在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

所以每次进行VB.NET函数调用的时候先有声明一个变量,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计划么,如果真的是这样,微软早就应该让位于其他软件商了。就是面向对象,也有一个是不是更强大的区别,而实际上他是更强大了。

或许你不会去使用他,但是在若于年后,一些新的程序员(在今天或许尚没有接触过编程)将掌握一门如此强大的语言。。。。。。。。

我们看看如何的改变:

  1. Shared Function < System.Runtime.
    InteropServices.DLLimport
    ("user32.dll")> 
  2. MessageBoxA(ByVal hwnd As Integer, 
    ByVal text As String, ByVal 
    lpcaption As String, ByVal 
    wtype As Integer) As Integer   
  3. End Function  

首先integer被作为32位数据替代了long(long是64位)

System是Net语言中的一个族,System.Runtime.InteropServices是system中的一个类。System.Runtime.InteropServices.DLLimpor是其中的一个方法。调用DLL的API
接口,这个的意思就是vb6的lib"user32", share是共享的意思,例如:

  1. Public Class classA   
  2. 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   
  3. End Function   
  4. End Class   

你可以这样调用 classA.MessageboxA 但是如果没有这个share 在class后打点就没有MessageboxA的成员出现了 ,现在你就象以前一样的使用他吧。

其实上面这个VB.NET函数调用方法并不正确,我们仍旧要使用API声明,只是换了一各形式

如果你认为这就是VB.NET就错了,看看这个:
system.WinForms.MessageBox.Show("对话内容写在这里", "标题写在这里", messagebox.OK BitOr messagebox.IconAsterisk)

这就是面向对象,你已经完成了所有的任务。不需要任何的API声明。不需要写多余的代码。

 

  1. messagebox.IconAsterisk=惊叹号图标   
  2. messagebox.IconError=错误图标   
  3. messagebox.IconExclamation=警告图标   
  4. messagebox.IconHand=错误图标   
  5. messagebox.IconInformation=提示图标  

所经点NET就是打点到达,在族后面打点,在类后面打点,在对象后面打点。第二个问题就是类与类之间相互的关系,Net在网上处理人与人的关系,在程序语言中处理类与类的关系。倒底是加不加share,倒底是类后面打点,还是Dim成一个对象(把他当一个变量吧)再说,是等于class,还是New class.是dim xxx as class=new class 还是dim xxx as new class
就是这样VB.NET函数调用将更简单,不须要研究一些很难的东西。 

责任编辑:曹凯 来源: pcppc.cn
相关推荐

2010-01-07 16:46:28

VB.NET延时函数

2009-11-10 16:55:05

VB.NET调用API

2009-11-03 12:52:38

VB.NET Wind

2009-10-15 17:50:48

VB.NET调用API

2009-10-15 17:50:48

VB.NET Spli

2010-01-21 18:35:56

VB.NET Impo

2009-10-21 10:45:50

VB.NET Quic

2009-10-13 11:22:46

VB.NET调用Web

2009-12-04 17:16:41

PHP析构函数

2010-01-19 18:24:29

VB.NET调用Win

2010-08-05 15:40:07

DB2快照函数

2010-01-05 14:01:27

JSON.NET

2009-10-27 11:16:20

VB.NET应用框架

2010-01-11 15:54:48

VB.NET操作缩放图

2010-01-20 17:47:54

VB.NET注释

2010-01-19 17:32:03

VB.NET流

2009-11-02 13:14:18

VB.NET函数

2009-10-28 15:01:59

VB.NET SHEL

2009-10-26 10:44:27

VB.NET API函

2010-01-18 10:33:28

VB.NET基本函数
点赞
收藏

51CTO技术栈公众号