原文:Visual Studio 使用及调试必知必会

 

一:C# CODING 技巧

1:TODO

然后 CTRL + W + T,打开任务列表,选中 Comments,就会显示所有待做的任务

2:打开所在的文件夹

右键单击任何一个文件选项卡, 选择"打开所在的文件夹",或在 Solution Explorer 的文件上面点右键;

3:比对同一个文件

鼠标向下拖动红框内的图标。

4:按意愿编程

我把它定义为:按意愿编程,即,在写代码过程中,如果觉得需要使用到一个新类,可以先不用创建这个类,可以先如下这么编写,然后按 ALT + SHIFT + F12,选择 Generate 就会在当前空间下新生成一个类。很爽,不打断你的当前编码思路。同理,如果要创建一个新的方法,也可以这样来做,极大的加快了我们的编码速度。

5:重构

VS 提供了一些快速的重构技巧,比如 类变量 重构为 属性,我们可以右键找到 Refactor,然后选择相应的重构项,

6:Safe Delete

一个变量要删除,怎么知道这个删除是安全的,使用 Alt + Del;

 

二:C#调试

1:命令窗口

CTRL + D + I,可以在立即窗口中写一些临时的代码;

2:编辑并继续

选中下面的选项,可以让你在调试暂停中,修改代码,而不用重新启动,

3:执行

单步执行:F10

跳进方法:F11

跳出方法:SHIFT + F11

执行到光标处:CTRL + F10

4:修改运行中的某值

直接修改法,如下:

立即窗口法,,然后在立即窗口写代码吧,如下:

5:回退当前执行代码

比如,代码运行到了 49 行了,想回到 45 行,没关系,鼠标点中黄色箭头,从 49 行拖到 45 行就可以了,如下:

6:查看当前调用链

CTRL + D + C,打开 Call Stack 窗口,这在调试的时候非常有帮助;

7:从进程开始调试

有时候,不想启动 VS 直接进行调试,比如,网站部署在本机,想从运行中的状态开始调试当前浏览器页面,即可以用 Attack to Process 启动调试,如下:

8:When Hit

我记得在我第一次写 Socket 程序的时候,调试耗费了无数的生命值,如果当时就知道使用 When Hit 这个功能就会好很多,即,如果断点命中,要打印出什么,这个在调试异步或者多线程代码的时候特别有用,如下:

其中,变量名或者代码,要写在{}中。

 

三:快捷键

1:剪切复制

复制当前行:CTRL + C

剪切当前行:CTRL + X,这也可被用来当作删除当前行;

粘贴:CTRL + V

循环复制:CTRL + SHIFT + V

4:折叠和展开

折叠当前大纲:CTRL + M + M

展开当前大纲:CTRL + M + M

折叠全部大纲:CTRL + M + O

展开全部大纲:CTRL + M + P

5:断点

设置断点:F9

取消断点:F9

取消全部断点:CTRL + SHIFT + F9

条件中断:如下,设置条件,

紧接着,

 

6:注释

注释当前行及选中行:CTRL + K + C

撤销注释:CTRL + K + U

7:选择

选中当前单词:CTRL + SHIFT + 箭头

8:定位

向后定位(回到光标上次所在位置):CTRL + 减号

向前定位:CTRL +  SHIFT + 减号

转到行:CTRL + G

9:查找

渐进式查找:CTRL + I,输入要查找的文本,再次按 CTRL + I

其它查找:CTRL + F,输入要查找的文本,查找方式,查

查找调用层次:CTRL + K + T,其结果如下,

10:切换

代码/设计窗口切换:F7 和 SHIFT + F7

打开文件间切换:CTRL + TAB

11:智能提示

重新弹出:Alt + →

12:缩进

单行|多行缩进:TAB

取消缩进:ALT + TAB

13:代码自动完成

你可以,敲入关键字(snippet) + TAB,如 Prop + TAB + TAB,生成一个属性。注意,两次TAB TAB是一个很好的东西,总是可以给我们生成意想不到的代码;

你还可以,还可以使用 CTRL + K + S,查看其它的可以快速完成的代码;

在其它一些情况下,你还可以使用ALT + SHIFT + F12,也可以用来自动生成代码,不如实现一个接口,这个时候,在类的后面的接口上使用该组合键,就会弹出提示让你 Generate 实现。

14:声明与引用

查看声明:F12

查看引用:SHIFT + F12

15:格式化代码

自动格式化当前窗口的代码:CTRL + K + D

16:BUILD

BUILD 解决方案:F6

BUILD 当前项目:SHIFT + F6

17:代码注释

给代码加注释:///

 

PS:另外,建议使用 Resharper,和 Resharper 的结合使用,还有很多提升编码效率和质量的技巧,你可以查看<Resharper的使用>。

Visual Studio 使用及调试必知必会的更多相关文章

  1. 《MySQL必知必会》整理

    目录 第1章 了解数据库 1.1 数据库基础 1.1.1 什么是数据库 1.1.2 表 1.1.3 列和数据类型 1.1.4 行 1.1.5 主键 1.2 什么是SQL 第2章 MySQL简介 2.1 ...

  2. 《MySQL 必知必会》读书总结

    这是 <MySQL 必知必会> 的读书总结.也是自己整理的常用操作的参考手册. 使用 MySQL 连接到 MySQL shell>mysql -u root -p Enter pas ...

  3. SQL 必知必会

    本文介绍基本的 SQL 语句,包括查询.过滤.排序.分组.联结.视图.插入数据.创建操纵表等.入门系列,不足颇多,望诸君指点. 注意本文某些例子只能在特定的DBMS中实现(有的已标明,有的未标明),不 ...

  4. .NET程序员项目开发必知必会—Dev环境中的集成测试用例执行时上下文环境检查(实战)

    Microsoft.NET 解决方案,项目开发必知必会. 从这篇文章开始我将分享一系列我认为在实际工作中很有必要的一些.NET项目开发的核心技术点,所以我称为必知必会.尽管这一系列是使用.NET/C# ...

  5. 《MySQL必知必会》[01] 基本查询

    <MySQL必知必会>(点击查看详情) 1.写在前面的话 这本书是一本MySQL的经典入门书籍,小小的一本,也受到众多网友推荐.之前自己学习的时候是啃的清华大学出版社的计算机系列教材< ...

  6. mysql必知必会

    春节放假没事,找了本电子书mysql必知必会敲了下.用的工具是有道笔记的markdown文档类型. 下面是根据大纲已经敲完的章节,可复制到有道笔记的查看,更美观. # 第一章 了解SQL## 什么是S ...

  7. 迈向高阶:优秀Android程序员必知必会的网络基础

    1.前言 网络通信一直是Android项目里比较重要的一个模块,Android开源项目上出现过很多优秀的网络框架,从一开始只是一些对HttpClient和HttpUrlConnection简易封装使用 ...

  8. SQL 必知必会 总结(一)

    SQL必知必会 总结(一) 第 1 课 了解SQL 1.数据库(database): 保存有组织的数据容器(通常是一个文件或一组文件). 2.数据库管理系统(DBMS): 数据库软件,数据库是通过 D ...

  9. SQL必知必会 -------- SELECT、注释

    主要是看<SQL必知必会>第四版的书,而写的一些SQL笔记,红色的是方便以后查询的sql语句,工作中主要是使用mysql数据库,所以笔记也是围绕mysql而写的. 下文调试的数据表sql语 ...

随机推荐

  1. cocos2D(四)---- CCSprite

    在介绍CCSprite之前,先要理解游戏开发中的一个核心概念:精灵.精灵也称为游戏对象,它能够用来表示游戏中的不论什么物体,比方敌人.子弹.甚至是一个背景图片.一段文字.CCSprite能够说是在co ...

  2. XHTML学习笔记

    1.每个网页都是在XML声明和DTD之后以一个<html>标记开始,以一个</html>标记结束 这两个标记表明在它们之间的所有文本都是HTML格式,他告诉浏览器如何理解该文档 ...

  3. J2EE互联网产品打造

    CSDN的各位技术朋友们,你们好: 我司最近正在研发一套J2EE的互联网产品,前期功能设计例如以下: 1.权限管理 2.菜单管理 3.系统设置 4.页面管理[主要做静态化] 5.任务管理[数据同步以及 ...

  4. 【iOS】文件下载小记

    下载文件到NSURLConnection与NSURLSession两种,一种有恨悠久的历史了. 使用相对麻烦,后者是新出来的,添加了一些额外的功能. 一.NSURLConnection实现下载 TIP ...

  5. BGP的状态机制

    Idle 状态:即空闲状态,不接受任何BGP的连接,等待Start事件的产生,如果有start事件产生,若有start事件产生,系统开启ConnectRetry定时器,向邻居发起TCP连接,并将状态变 ...

  6. Knockout应用开发指南 第三章:绑定语法(2)

    原文:Knockout应用开发指南 第三章:绑定语法(2) 7   click 绑定 目的 click绑定在DOM元素上添加事件句柄以便元素被点击的时候执行定义的JavaScript 函数.大部分是用 ...

  7. spring 普通类获取四大作用域request、applicationContext、session、page

    几乎所有web应用容器都提供了四种类似Map的结构:application session request page,Jsp或者Servlet通过向着这四个对象放入数据,从而实现Jsp和Servlet ...

  8. BZOJ 1109 POI2007 堆积木Klo LIS

    题目大意:给定一个序列,能够多次将某个位置的数删掉并将后面全部数向左串一位,要求操作后a[i]=i的数最多 首先我们如果最后a[i]=i的数的序列为S 那么S满足随着i递增,a[i]递增(相对位置不变 ...

  9. HUNNU11352:Digit Solitaire

    Problem description Despite the glorious fall colors in the midwest, there is a great deal of time t ...

  10. HDU 2451 Simple Addition Expression(组合数学)

    主题链接:http://acm.hdu.edu.cn/showproblem.php?pid=2451 Problem Description A luxury yacht with 100 pass ...