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重构学习总结相关推荐

  1. 步步为营 .NET 代码重构学习笔记 九

    步步为营 .NET 代码重构学习笔记系列 步步为营 .NET 代码重构学习笔记 一.为何要代码重构 步步为营 .NET 代码重构学习笔记 二.提炼方法(Extract Method) 步步为营 .NE ...

  2. 步步为营 .NET 代码重构学习笔记 十一

    步步为营 .NET 代码重构学习笔记系列 步步为营 .NET 代码重构学习笔记 一.为何要代码重构 步步为营 .NET 代码重构学习笔记 二.提炼方法(Extract Method) 步步为营 .NE ...

  3. 31 天重构学习笔记索引

    由于最近在做重构的项目,所以对重构又重新进行了一遍学习和整理,对31天重构最早接触是在2009年10月份,由于当时没有订阅Sean Chambers的blog,所以是在国外的社区上闲逛的时候链接过去的 ...

  4. 31天重构学习笔记下载

    前言 前两天写了一篇程序猿也爱学英语(上),有图有真相的文章,写作那篇文章只是自己一时兴起,或者说是自己的兴趣使然.文中的观点只是自己的学习心得和体会,属一家之言且鉴于本人不是学英语出身,所以也肯定有 ...

  5. 步步为营 .NET 代码重构学习笔记 十

    步步为营 .NET 代码重构学习笔记系列 步步为营 .NET 代码重构学习笔记 一.为何要代码重构 步步为营 .NET 代码重构学习笔记 二.提炼方法(Extract Method) 步步为营 .NE ...

  6. 三维重构学习笔记(3):坚实的后盾 OpenCV3

    三维重构学习笔记(3):坚实的后盾+OpenCV3 前面两篇笔记分别记录了关于三维重构中,有关相机标定.SFM流程的问题.除了公式的推倒和理解,仿真时始终仰仗OpenCV3大法,为了以后学习使用方便, ...

  7. 联手华为教育中心,华为MatePad全面屏智慧学习平板重构学习力

    "本打算给孩子买平板用来学习,结果到孩子手里变成了游戏机." "学校让孩子在家上网课,可孩子盯着平板一直看又担心他眼睛出问题." "在线教育课程这么多 ...

  8. 31 天重构学习笔记5. 提升字段

    摘要:由于最近在做重构的项目,所以对重构又重新进行了一遍学习和整理,对31天重构最早接触是在2009年10月份,由于当时没有订阅Sean Chambers的blog,所以是在国外的社区上闲逛的时候链接 ...

  9. 关于在VS2010中学习c++的MFC

    这几天一直纠结在C++的MFC应用上,C++的基础不难,用不了多久就能掌握. 对于框架,其实是一个熟识的过程,多接触自然能够得心应手.可是我一看了MFC的框架就是头大,感觉太复杂,一头雾水.VC6.0 ...

最新文章

  1. 教程 | 用AI生成猫的图片,撸猫人士必备
  2. Hibernate学习5—Hibernate操作对象
  3. Linux文件IO深入剖析
  4. ORB-SLAM2 学习1
  5. ZBlog菜鸟精致灰黑简约风格MiNi主题
  6. android layout 开关,Android多状态开关
  7. 【转载】如何使员工更敬业
  8. python如何用requests传送json格式数据
  9. 过拟合的原因以及如何解决
  10. 类的加载过程详解之过程二:Linking(链接)阶段
  11. 前端注释那些事儿:看懂这篇,提高代码质量So easy
  12. java 学籍管理系统课程设计_Java课程设计-学籍信息管理系统
  13. 干扰管理学习日志4-------信道估计方法 LS(最小二乘)、MMSE(最小均方误差)
  14. PHP中GD库的使用
  15. 项目无法识别 ?. 语法,导致报错Module parse failed: Unexpected token
  16. 业务流程持续优化的三个方法
  17. 腾讯,百度,高德地图兴趣点(POI)的获取以及查询,逆解析解析
  18. 整理分享Unity中的绘图插件
  19. 使用脚手架创建的vue项目目录详解
  20. 用Eicon接口卡来连接帧中继线路(转)

热门文章

  1. Windows环境下32位汇编程序设计C版code--第四章
  2. 在PPT中插入flash动画和影片
  3. Rest风格的URL地址约束||高版本Tomcat;Rest支持有点问题
  4. 全局的过滤器, 进行时间的格式化——所谓的全局过滤器,就是所有的VM实例都共享的 || 如何自定义一个私有的过滤器(局部)
  5. php 简单的解密和加密
  6. Python 代码绘制航海王四皇大妈(BIG MOM) - 门卫大爷也能跟着学会的Turtle海龟绘图系列
  7. Git知识点笔记-基本常识
  8. CTFshow 信息收集 web4
  9. 单片机GPIO软件模拟I2C通讯程序
  10. 对序列连续计算平均数和方差