装配中的脑袋

用程序装配大脑,再用大脑装配程序
随笔 - 118, 评论 - 1214, 引用 - 11

导航

工具

关于

如果想发较大的信件,请用Ninputer @ gmail.com

不要在我的Blog评论中张贴广告,除非同意向我付款。

标签

每月存档

广告



访客

 
  大家已经很熟悉C# 2005将加入内置的重构支持,方便用户快速对代码实施常用的重构。重构是十分重要的维护代码的手段,不仅C#的用户需要,VB的用户更加需要。因为从VB6升级来的代码,经过升级向导的“蹂躏”后已经面目全非,而且许多旧的代码风格与新的.NET特性格格不入。因此,重构成了升级旧代码,改善旧代码的重要手段。可惜的是,除了重命名之外,VB2005并没有加入重构特性,这让VB的程序员十分扫兴。好在微软承诺下一个版本支持重构的同时,还委托第三方软件开发商专门为VB2005提供了重构插件,VB2005的用户可直接免费下载安装,这就是Refactor! for VB2005。Refactor! Pro是由Developer Express Inc开发的VS插件,可用于所有VS.NET版本和编程语言,而Refactor! for VB2005则只支持Visual Studio 2005和Visual Basic语言,功能也比完全版的Refactor! Pro来的少。但是,它的功能却已经超过了VC# 2005所内置的重构功能。从今天起,我就开始介绍Refactor! for VB2005所提供的重构功能。

Refactor!支持Visual Studio 2005独特的智能标记,即将重构功能置于上下文的智能标记中,而不是在一个“重构”菜单选项中提供选择。这样用户更容易知道在当前的代码上可进行什么样的操作,而不是从一堆不知所措的重构名字中选取。这类智能标记通常要等用户将输入光标置于可重构的对象上才会出现,如子程序或函数名称、变量名称等等。

重新排列参数是Refactor!多项重构功能之一,它可以将函数或子程序的参数重新排列。更神奇的是,他可以将按引用传递的参数转化为函数的返回值,或进行相反的操作。比如有这样一个子程序:
 

Public Sub Sub1(ByVal a As IntegerByVal b As String)
'调用方
Call Sub1(10, "str")


通过“重新排列参数”可以将上述程序重构成:

 

Public Sub Sub1(ByVal b As StringByVal a As Integer)
'调用方
Call Sub1("str", 10)
 


再比如有这样的子程序:

 

Public Sub Sub2(ByRef x As Integer)
'调用方
Dim i As Integer
Call Sub2(i)
 


同过“重新排列参数”可以将按引用传递的参数移出而变成返回值:

 

Public Function Sub2()As Integer
'调用方
Dim i As Integer
i = Sub2()
 


还可以进行相反的重构,将函数的返回值变成按引用传递的参数。有许多VB程序员习惯用参数传出所需要的参数。现在你可以用这个重构功能项,将合适的子程序转变成函数,或进行相反的操作。

进行这项操作的步骤是:1、先保存和编译项目。2、将光标放在函数的定义上,点击出现的智能标记,并选择“Reorder Parameters”。3、按Tab键,选择要移动的参数或返回值,然后按左右方向键移动这个参数,到合适的位置。4、按Enter键确定修改,接下来根据提示将函数所有的调用处更改为新的签名。5、根据需要,进行Rename Local重构,将此重构引入的变量名更改为适当的名字。下面的动画演示了“重新排列参数”重构进行的过程,交换参数的视觉效果确实很酷!(速度较慢请包涵)

重命名本地变量是另一项非常有用的功能。实际上VB2005已经内含安全的重命名功能,但重命名本地变量功能可以将重命名的范围限定在当前的函数或子程序中,同时明显的视觉效果可以让你对被重命名的变量一目了然。操作步骤是:1、选择要重命名的符号,单击智能标记并选择“Rename Local”。2、在绿色的可替换区域内输入新的名称,按Tab键可在所有出现该名称的区域间跳转,可借此观察此项重构的影响范围。3、确定后,按下Enter键。很简单。


随贴广告(测试期)
相关文章

打印 | 张贴于 2005-05-08 08:41:00 | Tag:技术随笔  灵感记录

留言反馈

回复: Refactor! for VB —— VB2005的重构支持(一) 编辑
@zz
不懂就少说话,象我这样。
评论是简单的。建设是困难的。
2007-06-07 19:29:00 | [匿名用户:坐看云起]
re: Refactor! for VB —— VB2005的重构支持(一) 编辑
作者的动画作的很好啊!!!我一下子明白了什么是生构了,也知道重构的重要性了,继续!!!
2005-05-11 14:48:00 | [匿名用户:ZJH135]
re: Refactor! for VB —— VB2005的重构支持(一) 编辑
上面说的对!!搞底层与NET是无缘的,如果MS帮你把底层作的很好了,也教你如何写个很好的编译器什么的,那它就完了,有天你也写个WINDOWS或数据库什么的怎么办??因为MS根本就不打算与你有缘,它在与JAVA竞争,在商用应用领域竞争,底层的东西是它兑争的法宝,给你才怪呢
2005-05-11 14:45:00 | [匿名用户:Study]
re: Refactor! for VB —— VB2005的重构支持(一) 编辑
C#也不可以写硬件与系统程序吗?MS不是在定义C#时说C#具有VB的快速,还具有C++的行动力吗?也,MS是在骗人吗!!!看来我们搞硬件与系统开发的与NET无缘了!!!!BYE BYE NET,以后自已搞
2005-05-11 14:33:00 | [匿名用户:KEY]
re: Refactor! for VB —— VB2005的重构支持(一) 编辑
并不是VB.NET能够编写驱动程序,你的本事就更大了。恰恰相反,高手能用VB.NET开发出相当复杂和精妙的软件,尽管它不是驱动程序,但你仍然写不出来。
2005-05-11 13:10:00 | [匿名用户:Ninputer]
re: Refactor! for VB —— VB2005的重构支持(一) 编辑
要求NET和MS作点我们常用的东西是可以的吧,如上面的要开发POS打印,系统程序,硬件驱动(这些要有优势,只是可以是不行的,如我国也开发了数据库,也可以运行!!!),没有这些开发只谈这些有什么用呢??万能未常不可,至少要比JAVA应用的领域多才行啊??
2005-05-11 09:10:00 | [匿名用户:KEY]
re: Refactor! for VB —— VB2005的重构支持(一) 编辑
为什么要求.NET和MS把所有事情都做完?
2005-05-10 17:40:00 | [匿名用户:Jemmy]
re: Refactor! for VB —— VB2005的重构支持(一) 编辑
难道C/C++就不需要重构了吗,照样需要。别以为重构只是方便写写代码,和怎么编写驱动程序相比,重构更重要。你每天都需要重构,但可能一辈子也不需要写驱动程序。
2005-05-10 15:42:00 | [匿名用户:Ninputer]
re: Refactor! for VB —— VB2005的重构支持(一) 编辑
学C/C++,汇编算了!!NET也是用C/C++,汇编写的
2005-05-10 11:16:00 | [匿名用户:C]
re: Refactor! for VB —— VB2005的重构支持(一) 编辑
老大!!
SQL Server 2005 Reporting Service好象是基于网页的吧,那基于WINFORM的呢??能进行POS打印吗方便吗?有C++和PB实现的好吗??那怕是NET2.0用C#也是不能进行系统开发或硬件驱动开发吧!!
2005-05-10 10:46:00 | [匿名用户:zz]
coderush + Refactor!™ Pro vs ReSharper 编辑
coderush + Refactor!? Pro vs ReSharper
我只用过 ReSharper
等 0Day 出了一定试用一下!

coderush 最近升级到 v1.1.17
ReSharper 最近升级到 v1.5.1
2005-05-10 00:54:00 | [匿名用户:playyuer@Microshaoft]
re: Refactor! for VB —— VB2005的重构支持(一) 编辑
@zz

很巧啊,有了SQL Server 2005 Reporting Service,VS开发报表已经不是传统意义上的强大了,再加上Data Source内建支持,开发数据项目简直和access一样方便啊。而且功能大大增强的.NET Compact Framework2.0让VB和C#可以在嵌入式操作系统上大放光彩。同时,微软还有比苹果更先进的界面显示技术。
只叹你自己不去了解,却在我这里大发牢骚
2005-05-09 20:54:00 | [匿名用户:Ninputer]
re: Refactor! for VB —— VB2005的重构支持(一) 编辑
MS老是在表面上作文章,这些功能就是为了容易写代码嘛!!为什么不加点强大的功能呢,如报表打印和数据库开发象PB,DELPHI一样强大,为什么不把系统开发在C#和VB中加上,象C一样能进行嵌入式开发.....我想MS好象模访别人的东西走火了,如模访苹果公司的界面,就是没有学到人家的软件的强大功能,晕死我了
2005-05-09 17:15:00 | [匿名用户:zz]
re: Refactor! for VB —— VB2005的重构支持(一) 编辑
看起来与C# 2005也差不多啊,只是视觉效果COOL很多,那无所谓了,我倒宁愿没有视觉效果,嘿嘿
2005-05-08 11:26:00 | [匿名用户:none]
re: Refactor! for VB —— VB2005的重构支持(一) 编辑
VB 总是比C# 慢半拍
2005-05-08 11:00:00 | [匿名用户:Montaque]
re: Refactor! for VB —— VB2005的重构支持(一) 编辑
DevExpress Inc公司开发的产品非常好,VCL的QuantumGrid是非常强的第三方控件,CordRosh是用于Delphi和Refactor类似的产品,也非常棒。
2005-05-08 10:25:00 | [匿名用户:netrobo]
博客主人设置本博客不允许匿名用户发表言论,请登录后再试

Powered by: Joycode MVC Blogger System