




免费预览已结束,剩余81页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
IT开发规范(.NET)NO: 生效期:2009-03-7第 0 次修改ReSharper使用手册基于ReSharper4.1 for Visual Studio 2005某集团20091简介ReSharper是为Microsoft Visual Studio .NET 2003这一流行的开发平台提供的插件,功能是提供流行C#/VB.NET代码智能帮助,高亮度显示实时纠错以及重新参数化等功能。ReSharper 为C#/VB.NET开发者提供许多强力的提高生产力的能力。ReSharper为C#/VB.NET开发人员提供了许多强有力的特性,极大地提高了开发效率。程序特色如下:语法错误高亮显示a)搜索b)代码助手c)自动更正d)活动模板e)代码格式化f)重构g)代码生成h)代码导航i)代码完成j)其它特征2.ReSharper常用功能介绍:a)转到定义:Ctrl + B / Ctrl + 左键当光标在一个变量上时,按下Ctrl+B就会跳转到这个变量声明的地方。当光标在一个类型上时,按下Ctrl+B可能发生两种情况,一是当这个类型的定义在你的项目中有源代码时,会跳转到这个源代码文件。如果没有源代码,则会打开一个对象浏览器。b)查找所有使用:Alt + F7它的优点包括:可以从所有使用中挑选只显示read usage或者write usage.可以在下方预览,即使列出所有使用,也不想跳转到每个使用它的地方,这时预览显得非常方便。当代码编辑器中改动了某些使用时,比如删除了某行,那么在查找结果的窗体中,会用删除线表示出来。默认的是寻找解决方案中所有的使用,并且按照命名空间来组织,非常便于选择。c)从这里浏览:Ctrl + Shift + G当要找某个类的所有继承者,或者接口的所有实现者时,按住Ctrl+Shift+G会弹出一个菜单,其中有Inheritor,用方向键来选择并回车,如果只有一个实现,那么直接跳转到这个实现,如果有多于一个,或者因为使用了partial分布到好几个文件中,会再弹出一个菜单来提供选择。与此类似,如果选择base,则会跳转到基类或接口中去。d)快速完成:当写一个新的字段时,比如string _field; Resharper会自动地在前面为你加上private。当输入foreach的时候,模板会自动的出现,可以方便地输入集合还有子项的类型与名称,回车之后就进入到块中。这类的模板可以自行定义,并在团队中共享。这样在处理某些特定的场景时,代码的执行基本一致。在需要输入的时候,Resharper能够自动加上,并且光标位于其中,如果敲回车键,两个括号和准备接下来要写的块内的代码都缩进对齐了。需要输入ToString()的话,只需要敲ToS和;就可以了,其他的部分Resharper都自动完成。e)Alt + EnterAlt+Enter能够完成很多编写代码过程中的dirty work,总结起来大概是这么些:l 实现某个接口或抽象基类的方法;在安装了Resharper以后,这个功能被视为与其它警告一样的处理办法。如果在类后面加了:ISomeInterface以后,又没有实现它的方法,这一行代码会打上波浪号,表示有警告或者错误发生。按下Alt+Enter,则会自动生成这些方法。l 提供处理当前警告的一些建议;有的时候可能会忽略的一些细节,Resharper不会忽略,比如用了隐式类型转化:Button btn=senderasButton; /隐式类型转化而没有接下来检测它是否为空,就直接使用。这时Resharper会提示一个警告。如果按下Alt+Enter,它会把你之后的代码包括在一个if语句中:if(btn!=null)/你接下来的代码l 提供处理当前错误的一些建议(不一定是真的错误);被Resharper标记为红色的即为错误,有时错误也可能是有意为之。比如随意地在View.cs中写下了:_presenter.GetAllLayers();而实际上的Presenter.cs中还没有这个方法,那么按下Alt+Enter就会立即在Presenter.cs中添加这个方法,并跳转到该方法,如果Presenter不止分布在一个文件中,会弹出对话框提供选择。l 简化当前的臃肿代码。代码如果被Resharper视为多余的,那么会以灰色标识出来,例如:this.Text=标题栏文本/this为灰色btnOK.Click+=newEventHandler(btnOK_Click)/new EventHandler为 灰色多余的代码并无害,只是不简洁。f)Region: Ctrl + F12把对象浏览器和region的长处结合起来,既可以清晰的分类,又能一目了然的找到需要的方法。用Ctrl+F12,就弹出一个像下面这样的窗口来。这里面,按照region来显示,这样读代码的人也受益了。每个方法的参数,返回值都如UML一样列出来。如果需要浏览到某个方法,直接双击它的名字;如果要把某几个方法装进一个新的region,则可以选中方法,点工具栏上的像框的那个图标;点叉则会删除这个region并把相应的方法移到外面来。如果要调整某个方法的位置,比如把它移到别的region里面去,只需要在这里拖动这个方法即可。更可喜的是,你想要的从这里浏览、找到所有使用和重构的功能也在这里提供了,在某个方法上右键你就能开始操作。g)重构:Ctrl + Shift + RVisual Studio 2005提供的重构包括了如下:1. 封装字段2. 提取方法3. 提取接口4. 提升局部变量5. 移除参数6. 重命名7. 重新排列参数这些方法在Resharper中全部都支持(但Resharper的重构远不止这些),它们对应的变成了:1. 封装字段 Introduce Field2. 提取方法 Extract Method3. 提取接口 Extract Interface(另增加了Extract Superclass提 取为基类)4. 提升局部变量 Introduce Variable5. 移除参数 移到Change Signature(改变方法签名)中6. 重命名 Rename(Resharper会根据对象的类型名称,提供几个可选的最合适的名称)7. 重新排列参数 移到Change Signature(改变方法签名)中对于类,除了提取接口、基类,还可以移动它到其他的命名空间和移动到别的文件里。对于字段,提供了:Safe Delete,会检测所有使用到的地方,并询问如何删除;Pull Member Up和Push Member Down,可以把这个字段在基类和继承类中移动;Use base type where possible,尽可能的使用基类,由于ArcGIS平台是基于com组件的,很多时候我们需要的IGeometry,IPointCollection这样的接口所公开的属性或者方法,于是没有必要保存一个polygon对象,而可以使用基类型;Encapsulate Field,封装字段。对于方法,提供了:与字段类似的功能,此外;Change Signature,更改函数签名,包括更改名称,返回值类型,参数的各种信息,添加和删除参数,相当实用。如果是在重写方法上操作,会提示你是否到基类中更改。Make Static,如果Resharper检测到这个方法并没有与非静态成员相关联的话,往往会自动地提示(以黄色横杠的形式出现)可以改为static。Extract class from parameter,如果的参数有七个八个,可以使用它封装参数。Method to Property。 在方法体内部:Extract Method。Introduce Variable/Parameter/Field,取决于光标所在的对象,可以提供转化的功能。Inline Variable:就是把:IPoint point=newPointClass();point.PutCoords(_point.X, _point.Y);变成这样子:newPointClass().PutCoords(_point.X, _point.Y);重命名:Resharper提供了命名建议的功能。所以很容易改一个可读性强的名字。Resharper会根据这个变量的类型,提供几个备选名字,名字列表是列在光标位置上的(对方法重命名会弹出对话框),只需要用方向键选择并敲回车即可,这种名字多是将类型的名字首字母改为小写得来的,甚至刨根到基类的类型名,还可以在此基础上加以改进。插入代码:Alt + Insert生成的代码中最常用的是构造函数和属性,当没有私有字段的时候,只会生成一个空的默认构造函数,而且没有生成属性的功能。在有私有字段的情况下,生成之前会提供选择哪些私有字段需要作为构造函数的参数,并生成初始化的代码,这样编写重载极其方便。生成属性也类似。再次常用的就是重写基类或者接口的方法了。选择Implement Interface Member或者Override Inheritate Member,Resharper会查找当前类的基类或接口,然后按继承层次列出来,根据选择重写或实现这些方法。包围代码:Ctrl + Alt + JResharper中这个功能的快捷键是Ctrl+Alt+J,然后就可以选择将当前行的代码包围到try-catch块或者using中了。调整方法位置:Ctrl + Shift + 上/下键如果觉得只是把一个方法移动到前面去,却不得不打开代码结构窗口太过重量级,那么有轻量级的方法:当光标位于方法的名称上时,用Ctrl+Shift+上下键就可以移动方法的位置,包括方法的xml注释。h)浏览打开过的文档:Ctrl + E, Ctrl + E在我这里这个快捷键是Ctrl+E,Ctrl+E,按两次。打开一个文件的列表,用方向键选择并回车就会在编辑器中打开。i)格式化代码在Reparper菜单中点击Options选项,然后找到Languages选项,下面有Common(总体)、C#和Visual Basic.Net选项,他们的Formatting Style项是为了进行格式化代码的配置。下面以C#为例:Formatting Style选项下共有:Braces Layout(括号布局)、Blank Lines(空白行)、Line Breaks and Wrapping(换行符和包装)、Spaces(空间)、Other(其他)选项。l Braces Layout(括号布局)Type and namespace declaration(类型和命名空间声明):At next line(BSD style) - 推荐Method declaration(方法声明)At next line(BSD style) - 推荐Anonymous method declaration(匿名方法声明)At next line indented2(GNU Style) - 推荐Block under case lable(case标签块)At next line indented2(GNU Style) - 推荐Array and object initializer(数组的初始化)At next line indented2(GNU Style) - 推荐Other(其他)At next line(BSD style) - 推荐Empty braces formatting(空括号格式)On different lines - 推荐针对Force Braces中的选项全部推荐使用“Add braces”l Blank Lines(空白行)Keep max blank lines in declarations(声明时最大的空白行数)- 推荐1Keep max blank lines in code(代码中最大空白行数)- 推荐:1Around namespace- 推荐:1Around type- 推荐:1Around field-推荐:1Around single line field-推荐:0Around method-推荐:1Around single line method-推荐:0Around region-推荐:1Inside region-推荐:1Between different “using”groups-推荐:0After”using”listl Line Breaks and Wrapping(换行符和包装)Keep existing line breaks(使用VS换行符)-推荐:勾选Break line in simple embedded statement(简单嵌入式声明) - Break linePlace “else” on new line(关键字else是否另起一行)-推荐:勾选Place”While”on new line(关键字While是否另起一行)-推荐:勾选Place”catch”on new line(关键字catch是否另起一行)-推荐:勾选Place “finaly”on new line(关键字finaly是否另起一行)-推荐:勾选Wrap long lines(截断过长的行)-推荐:勾选Right margin(右边距)-推荐:120Wrap formal parameters(整理参数)-推荐:Chop if longPefer wrap before”(“in declaration-推荐:不勾选Pefer wrap after”(“in declaration-推荐:不勾选Wrap invocation arguments(整理形参)-推荐:Chop if longPrefer wrap before”(“in invocation-推荐:不勾选Prefer wrap after”(“in invocation-推荐:不勾选Wrap extends/implements list-推荐:Chop if longPrefer wrap before”;”-推荐:不勾选Wrap”for”statement header-推荐:Chop if longWrap ternary expression-推荐:Chop if longWrap muiltple declaration-推荐:Chop if longPrefer wrap before operation in binary expression-推荐:勾选Force chop compound condition in “if”statement-推荐:不勾选Force chop compound condition in “while”statement-推荐:不勾选Force chop compound condition in “do”statement-推荐:不勾选Wrap multiple type parameter constraints-推荐:Chop if longWrap object and collection initiallzer-推荐:Chop if longPrefer wrap before first constraint-推荐:不勾选Prefer wrap before type parameters opering angle-推荐:不勾选Place abstract property/indexer/event dedaration on single line-推荐:勾选Place simple property/indexer/event declaration on single line-推荐:不勾选Place simple accessor on single line-推荐不勾选Place simple method on single line-推荐:不勾选Place simple anorymous method on single line-推荐:不勾选Place simple LINQ expression on single line-推荐:不勾选Place simple array,object and collection on single line-推荐:勾选Place type attribute on same line-推荐:不勾选Place method attribute on same line-推荐:不勾选Place property/indexer/event attribute on same line-推荐:不勾选Place field attribute on same line-推荐:不勾选Place constructor initializer on same line-推荐:勾选Place type constraints on same line-推荐:勾选l Spaces(空间)Method call parentheses-推荐:勾选Method call empty parentheses-推荐: 勾选Array access brackets-推荐:勾选Method declaration parentheses-推荐: 勾选Method declaration empty parentheses-推荐:勾选“if”parentheses-推荐:勾选“while”parentheses-推荐:勾选“catch”parentheses-推荐:勾选“switch”parentheses-推荐:勾选“for”parentheses-推荐:勾选“foreach”parentheses-推荐:勾选“using”parentheses-推荐:勾选“lock”parentheses-推荐:勾选“typeof”parentheses-推荐:勾选“fixed”parentheses-推荐:勾选“sizeof”parentheses-推荐:勾选Before type parameter list angle-推荐:勾选Before type argument list angle-推荐:勾选Around Operators:此项包含各种操作符周围的空格样式,除(*,&)外,其他操作符左右两边分别空格。Within Parentheses:此项包含括号中表达式与括号之间是否有空格-推荐全部不选Ternary Operation:此项包含三元运算符在?和:的前后是否加空格-推荐全加After type cast parentheses-推荐:不勾选Before comma(逗号之前是否空格)-推荐:不勾选After comma(逗号之后是否空格)-推荐:勾选Before”for”semicolon(for表达式分号之前是否加空格)-推荐:不勾选After”for”semicolon(for表达式分号之后是否加空格)-推荐:勾选Before colon in attribute(属性中冒号前面是否加空格)-推荐:勾选After colon in attribute(属性中冒号之后是否加空格)-推荐:不勾选Before base types list colon(继承关系中冒号之前是否加空格)-推荐:勾选After base types list colon(继承关系中冒号之后是否加空格)-推荐:勾选Around dot-推荐:不勾选Around lambda arrow-推荐:勾选Within single line accessor-推荐:不勾选Within single line method-推荐:不勾选Within single line anonymous method-推荐:不勾选Within attribute brackets-推荐:不勾选Before array rank brackets-推荐:不勾选Within array rank brackets-推荐:不勾选Within array rank empty brackets-推荐:不勾选Within single-line
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中国广电鄂州市2025秋招笔试行测题库及答案通信技术类
- 安全知识培训会议标语课件
- 本册综合教学设计-2025-2026学年中职英语基础模块第三册高教版
- 第三单元第1课 凝练的视觉符号 说课稿 人教版初中美术七年级下册
- 2024新教材高中历史 第三单元 商业贸易与日常生活 第7课 古代的商业贸易说课稿 部编版选择性必修2
- 5.2《长方形和正方形的面积计算》教学设计-人教版三年级数学下册
- 教学设计及反思蛋白质
- 海关日常安全培训课件
- 海关协管员安全培训课件
- 第四课 幸福和睦的家庭教学设计初中道德与法治统编版五四学制2024六年级全一册-统编版五四学制2024
- 2025房屋宅基地买卖合同
- 高中政治答题模板
- 2020年高考数学真题(共13套)后附解析
- 非高危行业生产经营单位主要负责人及安全管理人员安全生产知识和管理能力试题及答案
- 境外信托合同范本
- 2024届高考二元思辨作文写作指导课件
- 数据治理的数据治理组织与流程
- (高清版)TDT 1055-2019 第三次全国国土调查技术规程
- 个人施工安全免责简单协议书(通用)带详尽条款
- 电梯结构与原理-第2版-全套课件
- 128个护理诊断和措施大全
评论
0/150
提交评论