VS2010重构学习总结
VS2010代码重构
Vs2010重构工具针对C#提供以下方式:
1. 重命名
2. 将方法中的代码提取成新的方法。默认情况是private statid void
3. 将私有变量提取为属性
4. 提取接口
5. 删除方法中的参数
6. 修改方法中的参数,参数顺序
clip_image002[4]
Rename
快捷键:Ctrl+R,R
namespace CSharpTest
{
class Test1
{
public void TT1()
{
Console.WriteLine("Hello");
}
}
class Program
{
static void Main(string[] args)
{
Test1 t = new Test1();
t.TT1();
}
}
}
namespace CSharpTest
{
class Test1
{
public void TT()
{
Console.WriteLine("Hello");
}
}
class Program
{
static void Main(string[] args)
{
Test1 t = new Test1();
t.TT();
}
}
}
Extract Method
快捷键:Ctrl+R,M
class Test1
{
public void TT()
{
Console.WriteLine("Hello");
}
}
class Program
{
static void Main(string[] args)
{
Test1 t = new Test1();
t.TT();
}
}
clip_image006
class Test1
{
public void TT()
{
PrintHello();
}
private static void PrintHello()
{
Console.WriteLine("Hello");
}
}
class Program
{
static void Main(string[] args)
{
Test1 t = new Test1();
t.TT();
}
}
Encapsulate Field
快捷键:Ctrl+R,E
private string name;
public string Name
{
get { return name; }
set { name = value; }
}
Extract Interface
快捷键:Ctrl+R,I
clip_image008
提取接口,必须选定一个函数进行多态
Remove Parameters
快捷键:Ctrl+R,V
public void Test1(int id,int number,int score)
{
Console.WriteLine(id);
Console.WriteLine(number);
Console.WriteLine(score);
}
t.Test1(1, 1000, 90);
删除number
public void Test1(int id, int score)
{
Console.WriteLine(id);
Console.WriteLine(score);
}
t.Test1(1, 90);
Reorder Parameters
快捷键:Ctrl+R,O
public void Test1(int id,int number,int score)
{
Console.WriteLine(id);
Console.WriteLine(number);
Console.WriteLine(score);
}
t.Test1(1, 1000, 90);
把number和score调换位置
public void Test1(int id, int score, int number)
{
Console.WriteLine(id);
Console.WriteLine(number);
Console.WriteLine(score);
}
t.Test1(1, 90, 1000);
========
图解VS.NET 之重构操作方法
http://blog.csdn.net/anyqu/article/details/7453590
用了很多年的VS,竟然不知道里面的重构,呵呵,BS自己一下。下边把这个过程写下,送给和我
一样的人。
1、重命名
以前就是直接在上边改,现在可以用这个来设置,传说可以将所有引用的部分一起修改过来。测试
了一下,确实如此,省得一次次编译一个个找。
2、提取方法
所谓的提取方法,个人认为说白了就是把函数复制一份,至于其它的本人愚顿没想到。
写上新名就可以了!
3、封装字段
封装字段是用来实现访问器的(个人认为),所以需要对类的属性进行重构,而对方法中的参数进
行此操作时会提示“请选择要进行封装的字段定义”对话框。
这个方法可以帮助写代码的快速生成属性,但有一个缺点就是一次只能做一个。网上已经有一次生
成多个的插件。有用的人自己到网上一搜即可。
4、提取接口
给懒汉设置的功能(哈哈),类写完,要生成个接口,选此功能即可。
生成的接口如下图。注意:选择此功能后,VS会将你选择的类自动继承你生成的接口。
其实下面的几个功能相对非常简单,容易理解了。不过为了保持完整性就一起放进来吧!
5、将变量提升为参数
唯一需要注意的就是要选择定义的变量,没有声明符的是不行的。
6、移除参数
7、重新排列参数
就是把参数按你需要的要求换来换去(没理解为什么要这么做)
========
重构前VS重构后效果对比
http://blog.csdn.net/pistolove/article/details/42554641
学习重构已经一个多月了,虽然不能让代码特别的整洁、高大尚,但是相比之前写的代码,
感觉自己进步很大。特别是我会尽量地减少成员变量的数量,让方法变得短小,减少临时变量的数
量.........这些在本文之前的重构方法中都有涉及,我想也许这就叫做学以致用吧。不知你是否也和
我一起同在学习、努力,不知你从这些重构文章中是否有所收获。但是,我想,不管怎么,还是希
望你也能不断努力、进步、提高自己。
下面所示代码中,重构前的代码是2个月之前写的,可以看见冗赘的成员变量,这会扰乱你
的思维;再看看前几周经过重构后的代码,效果会很明显。不管是谁,我想你一定会比较喜欢看下
方重构后的代码吧。少量的成员变量,简短的方法,理解起来也更加地容易。
那么,为什么我们不学习重构呢?为什么不对自己的代码进行重构呢?
重构前:
========
VS重构重命名的快捷键
Visual Studio中默认字段、局部变量、方法、命名空间、属性和类型的重命名快捷键是Ctrl+R+R
。使用快捷键比起使用鼠标右键点击菜单来操作便捷的多,所以掌握好重命名快捷键也是提高编码
效率的一个重要技巧。
选择重构后的重命名菜单命令
MSDN对于VS2008快捷键的说明(虽然是2008,但是对于其他版本比如2010/2012/2013来说相
差也不会太多):https://msdn.microsoft.com/zh-cn/library/ms366739(v=vs.90).aspx
命令名
快捷键
说明
重构.封装字段
Ctrl + R,E
显示“封装字段”对话框,该对话框允许从现有字段创建属性,并更新所有引用以使用新属性。
重构.提取接口
Ctrl + R,I
显示“提取接口”对话框,该对话框允许使用从现有类、结构或接口派生的成员创建新接口。
重构.提取方法
Ctrl + R,M
显示“提取方法”对话框,该对话框允许从选定的代码中创建新方法。
重构.将局部变量提升为参数
Ctrl + R,P
将变量从局部使用移动至方法、索引器或构造函数参数,并正确更新调用站点。有关更多信息,请
参见将局部变量提升为参数。
重构.移除参数
Ctrl + R,V
显示“移除参数”对话框,该对话框可通过更改调用成员的任何位置处的声明,从方法、索引器或
委托中移除参数。有关更多信息,请参见移除参数。
重构.重命名
F2
- 或 -
Ctrl + R,R
显示“重命名”对话框,该对话框允许重命名标识符的所有引用。
重构.重新排列参数
Ctrl + R,O
显示“重新排列参数”对话框,该对话框允许更改方法、索引器和委托的参数顺序。
作者:十有三
出处:http://shiyousan.com/post/635580331379132445
========
VS2010重构学习总结相关推荐
- 步步为营 .NET 代码重构学习笔记 九
步步为营 .NET 代码重构学习笔记系列 步步为营 .NET 代码重构学习笔记 一.为何要代码重构 步步为营 .NET 代码重构学习笔记 二.提炼方法(Extract Method) 步步为营 .NE ...
- 步步为营 .NET 代码重构学习笔记 十一
步步为营 .NET 代码重构学习笔记系列 步步为营 .NET 代码重构学习笔记 一.为何要代码重构 步步为营 .NET 代码重构学习笔记 二.提炼方法(Extract Method) 步步为营 .NE ...
- 31 天重构学习笔记索引
由于最近在做重构的项目,所以对重构又重新进行了一遍学习和整理,对31天重构最早接触是在2009年10月份,由于当时没有订阅Sean Chambers的blog,所以是在国外的社区上闲逛的时候链接过去的 ...
- 31天重构学习笔记下载
前言 前两天写了一篇程序猿也爱学英语(上),有图有真相的文章,写作那篇文章只是自己一时兴起,或者说是自己的兴趣使然.文中的观点只是自己的学习心得和体会,属一家之言且鉴于本人不是学英语出身,所以也肯定有 ...
- 步步为营 .NET 代码重构学习笔记 十
步步为营 .NET 代码重构学习笔记系列 步步为营 .NET 代码重构学习笔记 一.为何要代码重构 步步为营 .NET 代码重构学习笔记 二.提炼方法(Extract Method) 步步为营 .NE ...
- 三维重构学习笔记(3):坚实的后盾 OpenCV3
三维重构学习笔记(3):坚实的后盾+OpenCV3 前面两篇笔记分别记录了关于三维重构中,有关相机标定.SFM流程的问题.除了公式的推倒和理解,仿真时始终仰仗OpenCV3大法,为了以后学习使用方便, ...
- 联手华为教育中心,华为MatePad全面屏智慧学习平板重构学习力
"本打算给孩子买平板用来学习,结果到孩子手里变成了游戏机." "学校让孩子在家上网课,可孩子盯着平板一直看又担心他眼睛出问题." "在线教育课程这么多 ...
- 31 天重构学习笔记5. 提升字段
摘要:由于最近在做重构的项目,所以对重构又重新进行了一遍学习和整理,对31天重构最早接触是在2009年10月份,由于当时没有订阅Sean Chambers的blog,所以是在国外的社区上闲逛的时候链接 ...
- 关于在VS2010中学习c++的MFC
这几天一直纠结在C++的MFC应用上,C++的基础不难,用不了多久就能掌握. 对于框架,其实是一个熟识的过程,多接触自然能够得心应手.可是我一看了MFC的框架就是头大,感觉太复杂,一头雾水.VC6.0 ...
最新文章
- 教程 | 用AI生成猫的图片,撸猫人士必备
- Hibernate学习5—Hibernate操作对象
- Linux文件IO深入剖析
- ORB-SLAM2 学习1
- ZBlog菜鸟精致灰黑简约风格MiNi主题
- android layout 开关,Android多状态开关
- 【转载】如何使员工更敬业
- python如何用requests传送json格式数据
- 过拟合的原因以及如何解决
- 类的加载过程详解之过程二:Linking(链接)阶段
- 前端注释那些事儿:看懂这篇,提高代码质量So easy
- java 学籍管理系统课程设计_Java课程设计-学籍信息管理系统
- 干扰管理学习日志4-------信道估计方法 LS(最小二乘)、MMSE(最小均方误差)
- PHP中GD库的使用
- 项目无法识别 ?. 语法,导致报错Module parse failed: Unexpected token
- 业务流程持续优化的三个方法
- 腾讯,百度,高德地图兴趣点(POI)的获取以及查询,逆解析解析
- 整理分享Unity中的绘图插件
- 使用脚手架创建的vue项目目录详解
- 用Eicon接口卡来连接帧中继线路(转)
热门文章
- Windows环境下32位汇编程序设计C版code--第四章
- 在PPT中插入flash动画和影片
- Rest风格的URL地址约束||高版本Tomcat;Rest支持有点问题
- 全局的过滤器, 进行时间的格式化——所谓的全局过滤器,就是所有的VM实例都共享的 || 如何自定义一个私有的过滤器(局部)
- php 简单的解密和加密
- Python 代码绘制航海王四皇大妈(BIG MOM) - 门卫大爷也能跟着学会的Turtle海龟绘图系列
- Git知识点笔记-基本常识
- CTFshow 信息收集 web4
- 单片机GPIO软件模拟I2C通讯程序
- 对序列连续计算平均数和方差