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

推荐订阅源

C
CXSECURITY Database RSS Feed - CXSecurity.com
V2EX - 技术
V2EX - 技术
美团技术团队
NISL@THU
NISL@THU
C
CERT Recently Published Vulnerability Notes
Google DeepMind News
Google DeepMind News
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
MyScale Blog
MyScale Blog
C
Cybersecurity and Infrastructure Security Agency CISA
W
WeLiveSecurity
博客园 - 聂微东
Hacker News - Newest:
Hacker News - Newest: "LLM"
H
Help Net Security
GbyAI
GbyAI
G
GRAHAM CLULEY
The Last Watchdog
The Last Watchdog
U
Unit 42
罗磊的独立博客
B
Blog RSS Feed
K
Kaspersky official blog
宝玉的分享
宝玉的分享
Blog — PlanetScale
Blog — PlanetScale
Know Your Adversary
Know Your Adversary
IT之家
IT之家
www.infosecurity-magazine.com
www.infosecurity-magazine.com
Y
Y Combinator Blog
S
Secure Thoughts
P
Privacy & Cybersecurity Law Blog
S
Schneier on Security
Last Week in AI
Last Week in AI
Hacker News: Ask HN
Hacker News: Ask HN
L
LINUX DO - 热门话题
雷峰网
雷峰网
Martin Fowler
Martin Fowler
Recent Commits to openclaw:main
Recent Commits to openclaw:main
N
Netflix TechBlog - Medium
T
Tor Project blog
The GitHub Blog
The GitHub Blog
The Hacker News
The Hacker News
F
Fortinet All Blogs
Webroot Blog
Webroot Blog
Spread Privacy
Spread Privacy
Cloudbric
Cloudbric
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Schneier on Security
Schneier on Security
人人都是产品经理
人人都是产品经理
P
Privacy International News Feed
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
T
The Exploit Database - CXSecurity.com
Microsoft Security Blog
Microsoft Security Blog

博客园 - 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 = "";

}