惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

T
Tailwind CSS Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
雷峰网
雷峰网
量子位
有赞技术团队
有赞技术团队
阮一峰的网络日志
阮一峰的网络日志
The Cloudflare Blog
博客园 - Franky
罗磊的独立博客
宝玉的分享
宝玉的分享
博客园_首页
腾讯CDC
The GitHub Blog
The GitHub Blog
D
DataBreaches.Net
IT之家
IT之家
D
Docker
Microsoft Security Blog
Microsoft Security Blog
博客园 - 司徒正美
V
V2EX
月光博客
月光博客
N
Netflix TechBlog - Medium
爱范儿
爱范儿
I
InfoQ
P
Proofpoint News Feed

博客园 - niceboy

Redhat Linux 7.3 虚拟机通过USB挂载NTFS格式的移动硬盘 自己写的一个记录日常事务的小软件,也可以作为密码保险箱和提醒工具 访问IIS元数据库失败解决办法 海事卫星通信 关于GPS车载终端的研究 操作或事件已被禁用模式阻止 售前工程师的来世今生(转载自IT售前论坛的经典基础知识)【转】 用Oracle Instant client 打包Oracle客户端 Oracle数据库中 编号自动增长的实现 关于FTP端口【转】 轻松掌握使用 SQL Server 浏览器,解决SQL Server 2005跨网段不能连接问题 论《金瓶梅》与项目管理中人际关系协调 软件开发质量管理层次模型 软件开发中项目需求管理简述 软件测试的基本概念和方法 Web应用程序的整体测试 VSS使用手册 .Net 2.0新功能:重构(Refactoring)(4) .Net 2.0新功能:重构(Refactoring)(2)
.Net 2.0新功能:重构(Refactoring)(3)
niceboy · 2008-08-21 · via 博客园 - niceboy

实例

当你编写了一个代码很长的方法,它包含一些非常复杂的算法集合。在完成该方法以后,你可能意识到它变得太大和太复杂了,以至于其它小组成员无法容易地理解它。因此,你决定把它拆分成多个小函数。这不仅会简化你的代码而且还能够改进其易读和可维护性。“重构”菜单下的“提取方法”选项正是适合这一工作。

假设方法为:

            

public void TestMethod()

{

string s = "";

}

(1)用选中 string s = "";  然后点击"提取方法"菜单选项。立即出现"提取方法"对话框。

(2)按“确定”,结果如下:

            

public void TestMethod()

{

NewMethod();

}

private static void NewMethod()

{

string s = "";

}

重构为我们完成了两件事情:

◆它根据你的每一次选择创建一个新的方法并且替换其中的所有选择的代码。

◆它用一个到这个新创建方法的调用来替换选择的行。

【2】重命名

<1>提供了一种重命名代码符号(如字段、局部变量、方法、命名空间、属性和类型)标识符的简单方法.

<2>“重命名”功能除了可用来更改标识符的声明和调用以外,还可用来更改注释中和字符串中的名称.

在何处可以使用重命名操作?

<1>代码编辑器

<2>类视图

<3>对象浏览器

<4>Windows 窗体设计器的“属性网格”

<5>解决方案资源管理器

重命名执行些什么操作?

<1>字段

◆将字段的声明和用法更改为新名称。

<2>局部变量

◆将变量的声明和用法更改为新名称。

<3>方法

◆将方法的名称以及对该方法的所有引用更改为新名称。

<4>命名空间

◆将声明、所有正在使用的语句及完全限定名称中的命名空间名称更改为新名称。

<5>属性

◆将属性的声明和用法更改为新名称。

<6>类型

◆将类型的所有声明和所有用法都更改为新名称,包括构造函数和析构函数。对于部分类型,重命名操作将传播到其所有部分。

实例

假设我们需要“NewMethod”重命名为“NewMethod2”。

选中 “NewMethod” 然后点击“重命名”菜单选项。立即出现“重命名”对话框。

结果:

            

public void TestMethod()

{

NewMethod2();

}

private static void NewMethod2()

{

string s = "";

}