动网论坛,站长建站首选,国内使用量最多的论坛软件 动网论坛官方技术讨论区 站长工具 申请属于您自己的免费论坛
首页 | 新闻资讯 | 网站运营 | 网络编程 | 数据库 | 服务器 | 网页设计 | 图像媒体 | 网络应用 | 搜索优化 | 资源下载 | 动网主机 | DVBOX
    本站内  互联网 ASP论坛  ASP.Net论坛  PHP论坛
   .Net → 阅读文章

 VB 2005的重构支持之智能标记

作者来源: 
阅读 数 386 人次 , 2006-4-20 9:24:00 

  大家已经很熟悉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键。很简单。

VB 2005的重构支持之智能标记 

  
 
 收藏本文  打印本文  论坛讨论  关闭窗口
· 上一篇:VB.NET中的TextBox控件详解
· 下一篇:Visual Basic.NET实现双检锁(DCL)模式
· DataGrid同时具有分页和排序功能及注意点
· 建立ASP.NET开发平台
· ASP.NET访问Oracle数据库的方法
· 用Visual C#动态生成组件,请看!(二)
· 全面剖析VB.NET(1)


关于本站 | 联系我们 | 业务合作 | 客户案例 | 诚聘英才 | 广告合作 | 收藏本站
海口动网先锋网络科技有限公司版权所有
Copyright © 2000 - 2006 Cndw.Com
中华人民共和国电信与信息服务业务经营许可证编号 琼 ICP 020077