论文部分内容阅读
[摘要]在Visual Basic程序设计中,往往需要对应用程序进行优化,目的是为了提高运行效率。当然,对应用程序的优化可以采用多种方法,只是针对对象的优化进行探讨。
[关键词]Visual Basic 程序设计 对象 优化
中图分类号:TP3文献标识码:A文章编号:1671-7597(2009)0510074-01
Visual Basic是面向对象的程序设计,而对象就是将数据和处理该数据的过程(函数和子程序)打包在一起而生成的新的数据类型。在Visual Basic中,所有窗体和控件都是对象,在Visual Basic中创建应用程序之际,也就是和对象打交道之时了。因此,随着对象的使用越来越多,对象的优化已变得越来越重要了。
所谓“优化”,就是通过选择和设计数据结构、算法以及指令序列,来提高程序效率的过程。对应用程序的优化
可以采用多种方法,而本文只是对对象的优化进行了探讨。那么如何优化呢?下列一些方法提供给大家参考。
一、程序设计时要尽量减少点操作
当从Visual Basic中应用其他应用程序的对象时,我们通常使用点语法“.”对对象的集合、对象、属性和方法进行定位。如:
Application.Workbooks.Item(1).Worksheets.Item(“Sheet1”).Cells.Item(1,1)
不难看出,键入的字符串不但相当长,而且这行代码还相当难读。当从Visual Basic中调入对象时,每一个“点”都需要Visual Basic产生多次调用,所以,为了写出最有效的应用程序,引用对象时应尽量少用点操作。通过分析可用的对象和方法,常常可减少点操作的数量。例如删除Item方法,并使用比较有效的Range方法,就可缩短上面的代码行:
Application.Workbooks(1). Worksheets(“Sheet1”).Range(“A1”)
这样既易读易懂,又可提高运行速度,减少运行成本。
二、尽量少用跨进程调用
在程序设计时,跨进程调用是我们常用的方法和手段,但这种方法使用多了,就会降低程序性能。在使用跨进程ActiveX部件时,就不能完全避免产生跨进程调用,因此我们可用下面的方法减少跨进程的调用。如果可能,不要在For…Next循环中引用对象,将值缓存在变量中,然后在循环体中使用变量。若必须调用对象中大量的方法,通过将代码移入部件,可大大改进应用程序的性能。如,若部件是Word或Excel,可将循环宏放入模板,或将循环过程放入Excel模块,然后从Visual Basic中调用宏或过程,这只是一次调用,它将在部件中引发一个循环操作。
在编写部件时,通过减少跨进程的调用可将部件中对象的设计得更有效。如,当有几个内关联的属性时,可使用带有多个参数的方法,其中每个参数对应一个属性,无论方法带有多少个参数,调用方法只需一次跨进程调用,反之,设置每个属性则需一次单独的跨进程调用。同样,如果预先知道作为客户的部件将循环调用该部件,那么,可提供对象中完成循环的方法,然后返回适当的结果,这样可以改善程序性能。
三、要使用Set和With…End With
使用Set语句可缩短定位字符串,并提供对代码更灵活的控制。例如使用Dim和Set语句创建变量,使其引用经常使用的对象。
Dim xlRang As Object
Set xlRange=Application.ActiveSheet.Cell(1,1)
xlRange.Font.Bold=True
xlRange.Width=40
Visual Basic还提供了With…End With语句,它可用来设置代码中隐含的对象。如:
With Application.ActiveSheet.Cell(1,1)
.Font.Bold=True
.Width=40
End With
四、使用事前连接,可大大提高运行效率
如果对象可以事前连接,Visual Basic使用对象就更有效。若提供了对包含对象的类型库的引用,并声名了对象的类型,那么对象就可以事前连接。如:
Dim X As New MyObject
或者相当于:
Dim X As MyObject
Set X=New MyObject
事前连接可使Visual Basic在编译时完成大多数处理对象的定义工作,而不是运行时处理。这也可使Visual Basic检查对象所用属性和方法的语法错误,并报告错误。若Visual Basic不能事前连接对象,那么就必须在事后连接。事后连接对象的代价很大,在编译时不进行错误检查,在运行时每个引用需要至少由Visual Basic增加50%的工作量,所以要尽可能事前连接对象。
总之,优化应用程序,就是提高应用程序的性能,降低运行成本,而优化对象只是优化应用程序的方法之一,我们希望通过对优化对象的探讨,为应用程序的设计提供一些帮助。
参考文献:
[1]李姣军、何丰、王培容,VB在CAI教学软件开发中的技术探讨VB应用程序的优化[J].重庆工学院学报,2003年01期.
[2]John Clark Craig and Jeff Webb[美].Visual Basic6.0程序开发环境[M].北京:北京大学出版社,2000.
作者简介:
迟津愉,女,辽宁沈阳人,实验师,从事计算机教学工作。
[关键词]Visual Basic 程序设计 对象 优化
中图分类号:TP3文献标识码:A文章编号:1671-7597(2009)0510074-01
Visual Basic是面向对象的程序设计,而对象就是将数据和处理该数据的过程(函数和子程序)打包在一起而生成的新的数据类型。在Visual Basic中,所有窗体和控件都是对象,在Visual Basic中创建应用程序之际,也就是和对象打交道之时了。因此,随着对象的使用越来越多,对象的优化已变得越来越重要了。
所谓“优化”,就是通过选择和设计数据结构、算法以及指令序列,来提高程序效率的过程。对应用程序的优化
可以采用多种方法,而本文只是对对象的优化进行了探讨。那么如何优化呢?下列一些方法提供给大家参考。
一、程序设计时要尽量减少点操作
当从Visual Basic中应用其他应用程序的对象时,我们通常使用点语法“.”对对象的集合、对象、属性和方法进行定位。如:
Application.Workbooks.Item(1).Worksheets.Item(“Sheet1”).Cells.Item(1,1)
不难看出,键入的字符串不但相当长,而且这行代码还相当难读。当从Visual Basic中调入对象时,每一个“点”都需要Visual Basic产生多次调用,所以,为了写出最有效的应用程序,引用对象时应尽量少用点操作。通过分析可用的对象和方法,常常可减少点操作的数量。例如删除Item方法,并使用比较有效的Range方法,就可缩短上面的代码行:
Application.Workbooks(1). Worksheets(“Sheet1”).Range(“A1”)
这样既易读易懂,又可提高运行速度,减少运行成本。
二、尽量少用跨进程调用
在程序设计时,跨进程调用是我们常用的方法和手段,但这种方法使用多了,就会降低程序性能。在使用跨进程ActiveX部件时,就不能完全避免产生跨进程调用,因此我们可用下面的方法减少跨进程的调用。如果可能,不要在For…Next循环中引用对象,将值缓存在变量中,然后在循环体中使用变量。若必须调用对象中大量的方法,通过将代码移入部件,可大大改进应用程序的性能。如,若部件是Word或Excel,可将循环宏放入模板,或将循环过程放入Excel模块,然后从Visual Basic中调用宏或过程,这只是一次调用,它将在部件中引发一个循环操作。
在编写部件时,通过减少跨进程的调用可将部件中对象的设计得更有效。如,当有几个内关联的属性时,可使用带有多个参数的方法,其中每个参数对应一个属性,无论方法带有多少个参数,调用方法只需一次跨进程调用,反之,设置每个属性则需一次单独的跨进程调用。同样,如果预先知道作为客户的部件将循环调用该部件,那么,可提供对象中完成循环的方法,然后返回适当的结果,这样可以改善程序性能。
三、要使用Set和With…End With
使用Set语句可缩短定位字符串,并提供对代码更灵活的控制。例如使用Dim和Set语句创建变量,使其引用经常使用的对象。
Dim xlRang As Object
Set xlRange=Application.ActiveSheet.Cell(1,1)
xlRange.Font.Bold=True
xlRange.Width=40
Visual Basic还提供了With…End With语句,它可用来设置代码中隐含的对象。如:
With Application.ActiveSheet.Cell(1,1)
.Font.Bold=True
.Width=40
End With
四、使用事前连接,可大大提高运行效率
如果对象可以事前连接,Visual Basic使用对象就更有效。若提供了对包含对象的类型库的引用,并声名了对象的类型,那么对象就可以事前连接。如:
Dim X As New MyObject
或者相当于:
Dim X As MyObject
Set X=New MyObject
事前连接可使Visual Basic在编译时完成大多数处理对象的定义工作,而不是运行时处理。这也可使Visual Basic检查对象所用属性和方法的语法错误,并报告错误。若Visual Basic不能事前连接对象,那么就必须在事后连接。事后连接对象的代价很大,在编译时不进行错误检查,在运行时每个引用需要至少由Visual Basic增加50%的工作量,所以要尽可能事前连接对象。
总之,优化应用程序,就是提高应用程序的性能,降低运行成本,而优化对象只是优化应用程序的方法之一,我们希望通过对优化对象的探讨,为应用程序的设计提供一些帮助。
参考文献:
[1]李姣军、何丰、王培容,VB在CAI教学软件开发中的技术探讨VB应用程序的优化[J].重庆工学院学报,2003年01期.
[2]John Clark Craig and Jeff Webb[美].Visual Basic6.0程序开发环境[M].北京:北京大学出版社,2000.
作者简介:
迟津愉,女,辽宁沈阳人,实验师,从事计算机教学工作。