大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
调用过程,调用过程有诸多技巧,它们与过程的类型、位置以及在应用程序中的使用方式有关。下面说明如何调用 Sub 过程和 Function 过程。
创新互联是一家专注于网站建设、网站设计与策划设计,青神网站建设哪家好?创新互联做网站,专注于网站建设十余年,网设计领域的专业建站公司;建站业务涵盖:青神等地区。青神做网站价格咨询:18982081108
调用 Sub 过程
与 Sub 过程不同,在表达式中,Sub 过程不能用其名字调用。调用 Sub 过程的是一个独立的语句。Sub 过程还有一点与函数不一样,它不会用名字返回一个值。但是,与 Function过程一样,Sub 过程也可以修改传递给它们的任何变量的值。
调用 Sub 过程有两种方法:
'以下两个语句都调用了名为 MyProc 的 Sub 过程。
Call MyProc (FirstArgument, SecondArgument)
MyProc FirstArgument, SecondArgument
注意,当使用 Call 语法时,参数必须在括号内。若省略 Call 关键字,则也必须省略参数两边的括号
调用函数过程
通常,调用自行编写的函数过程的方法和调用 Visual Basic 内部函数过程(例如 Abs)的方法一样;即在表达式中写上它的名字。
'下面的语句都调用函数 ToDec。
Print 10 * ToDec
X = ToDec
If ToDec = 10 Then Debug.Print "Out of Range"
X = AnotherFunction ( 10 * ToDec)
就像调用 Sub 过程那样,也能调用函数。下面的语句都调用同一个函数:
Call Year (Now)
Year Now
当用这种方法调用函数时,Visual Basic 放弃返回值。
调用其它模块中的过程
在工程中的任何地方都能调用其它模块中的公用过程。可能需要指定这样的模块,它包含正在调用的过程。调用其它模块中的过程的各种技巧,取决于该过程是在窗体模块中、类模块中还是标准模块中。
窗体中的过程
所有窗体模块的外部调用必须指向包含此过程的窗体模块。如果在窗体模块 Form1 包含 SomeSub 过程,则可使用下面的语句调用 Form1 中的过程:
Call Form1.SomeSub(arguments)
类模块中的过程
与窗体中调用过程类似,在类模块中调用过程要调用与过程一致并且指向类实例的变量。例如,DemoClass 是类 Class1 的实例:
Dim DemoClass as New Class1
DemoClass.SomeSub
但是不同于窗体的是,在引用一个类的实例时,不能用类名作限定符。必须首先声明类的实例为对象变量(在这个例子中是 DemoClass )并用变量名引用它。
标准模块中的过程
如果过程名是唯一的,则不必在调用时加模块名。无论是在模块内,还是在模块外调用,结果总会引用这个唯一过程。如果过程仅出现在一个地方,这个过程就是唯一的。
如果两个以上的模块都包含同名的过程,那就有必要用模块名来限定了。在同一模块内调用一个公共过程就会运行该模块内的过程。例如,对于 Module1 和 Module2 中名为 CommonName 的过程,从 Module2 中调用 CommonName 则运行 Module2 中的 CommonName 过程,而不是 Module1 中的 CommonName 过程。
从其它模块调用公共过程名时必须指定那个模块。例如,若在 Module1 中调用 Module2 中的 CommonName 过程,要用下面的语句:
Module2.CommonName (arguments)
Public 用于声明对所有模块中的所有其它过程都可以使用的过程。
Private 用于声明只能在包含该声明的模块中使用的过程。
代码重用简化了开发过程 而可视化继承之类的功能又使得代码重用更加方便 然而 代码重用并不局限于此 借助作为VB NET基础的CLR(Common Language Runtime 公共语言运行时环境) 我们可以在VB NET中继承其他VS NET语言编写的类 例如我们可以编写一个C#类 然后在VB NET类中继承该C#类
VB NET的面向对象功能已经向各个方向扩展 甚至深入到了语言本身——在VB NET中 一切都是对象 它意味着和以前的VB版本相比 我们从VB NET本身获得的支持和功能要多得多 求助于Windows API的时候将更少 例如 在以前的VB版本中 我们用LoadPicture方法装入一个图形 用Line方法(或者其他速度更快的API函数)画线 而在VB NET中 我们用System Drawing对象创建和处理图形 下面这段代码用System Drawing对象在窗体上显示一个图形
picshowpicture Image = _ system Drawing Image FromFile( _ c test bmp )
注意 VB NET的 一切都是对象 可能会使代码变得冗长 考虑下面这个语句 它在一个图形对象上面画一条黄绿色的线
objgraphics DrawLine(system Drawing _ Pens Chartreuse )
语句虽然变长 但它获得的好处是 更加灵活 更加容易使用 以前 要实现一些较为复杂的功能往往要深入研究文档 通常还要求助于API 现在 所有相关的功能集都封装到了对象之中 用对象封装功能还有额外的优点——对象以一种极为优美的形式把相关功能组织了起来 所以浏览各个对象 看看它们到底做些什么 事实上也是一件有趣的事情
Visual Basic NET的面向对象特色带来了许多切实的好处 大多数情况下 和以前的VB版本相比 VB NET面向对象的本性以及它对继承的支持使得创建某些类型的应用更加快速和方便 然而 虽然我们可以使用继承以及其他 NET的新功能 比如自由线程 但这些功能并不是一定得使用不可 正如所有其它语言的功能 我们必须使用的功能是那些对给定情形来说最具有意义的功能
lishixinzhi/Article/program/net/201311/11301
软糖来回答罗。
“调用事件”有歧义,你的意思是不是下面两种:
调用事件处理方法
直接调用对象名.方法名
'例如有这样一个按钮点击事件处理程序
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
秒表.Start()
End Sub
'调用它直接用
Button1_Click(me, new EventArgs())
引发事件
Button1.Click.Invoke(me, new EventArgs())
另外 RaiseEvent 也可以引发事件,但不能使用 RaiseEvent 来引发派生窗体的控件事件,只有自己定义的类的事件才能用它引发。
如满意,请采纳,谢谢。
在.NET中,对象和结构还是有些不同的,定义方式也是其中之一。
像整型、字符串和一些数值类型都属于结构。结构只需要这样定义就可以了:
Dim str As String
系统自动分配内存,然后就可以对它进行访问了。
如果像这样声明普通类:
Dim cla As Class
此时直接访问cla类成员会引发一个null异常。因为你仅仅声明了cla的类型(cla是Class类型的),而内存中没有一个真正的对象(类的实例)。如果你需要一个实例,就需要用New关键字,例如:
Dim cla As New Class("some words")
这时系统会建立一个Class对象,并将cla指向这个对象。这样就完成了一次实例化。这时就可以直接访问cla的成员了。
在实例化时,系统会调用对象的New函数,即构造函数。后面括号里的内容并不是对象的属性,而是要传递给这个构造函数的参数。至于对象的构造函数是否需要参数、需要多少参数以、参数的类型及重载情况等,取决于要实例化的类型。
上面的Class只是例子,代换成实际的类即可。
如果是public,直接对象.成员,private可以写个成员函数返回这个成员,友元也行。
比如:
class A
{
public:
int get(){return a;}
private:
int a;
}