如果你像我一样,或许你也沉迷于开发者工具。这就是我喜欢 Visual Studio 的原因之一——它有无数的生产力技巧。

这篇文章将展示五个这样的技巧,这些技巧对我每天的工作都有帮助。请注意,这些仅适用于 Visual Studio。有像ReSharperRoslynatorOzCode这样的扩展可以增加大量的生产力价值,但这是另一篇博文。

1. 代码片段

Visual Studio 允许您快速创建常见的代码片段。这可能是一个for循环、一个try..catch子句或一个using语句。要使用它,只需输入代码片段的快捷方式。for例如,对于语句,开始输入for

IntelliSense 显示有三个适合的片段for(前三个项目)。要使用其中之一,只需点击Tab两次,VS 就会生成样板代码。

现在您可以编辑突出显示的部分。点击Tab以在它们之间切换,EnterEsc在完成时切换。

有几十个开箱即用的片段。他们之中有一些是:

  • try
  • foreach
  • if/else
  • dodo..while
  • propdp 对于依赖属性

甚至还有代码块的片段。例如,您可以用一个try..catch片段包围一个块。

2. 来自未导入命名空间的 IntelliSense 项

您是否曾经觉得 ReSharper 的 IntelliSense 比 Visual Studio 的更好?那是因为 ReSharper 已经做了很多 VS 没有的聪明的事情。不过,Visual Studio 正在迎头赶上。最近添加的是从未导入的命名空间选项添加项目。它是角落里的“+”按钮。

当您开始编写某些内容时,Visual Studio 会显示仅来自using当前文件中添加(带有)的命名空间的自动完成选项。你可以想象这是非常有限的。您真正想要的是查看所有可用选项并让 IDE 导入正确的命名空间。这正是这个按钮的作用。当点击或使用Alt + A快捷方式时,您将看到来自项目所有可用命名空间甚至其引用的项目:

3. 快速操作和重构

Visual Studio 包括许多自动重构和代码生成功能。嗯,没有ReSharper那么多,但您会感到惊讶。其中大部分都可以从Quick Actions and Refactorings菜单访问,该菜单可通过Ctrl + .快捷方式访问。只需将插入符号放在类上,然后点击快捷方式。你会看到一堆有用的选项:

例如,如果您选择一个代码块,您通常能够将其提取到一个方法或一个本地函数中。

这些有很多。要发现它们,每当您站在某物上方时,请查找“快速操作”按钮:

如果您使用的是 ReSharper,您可能会看到一个灯泡【译者注:更像一个起子(改锥)】按钮,显示 ReSharper 的重构。点击该灯泡将在同一上下文菜单中显示来自 ReSharper 和 Visual Studio 的操作。

4. 在解决方案资源管理器中跟踪活动项目或不跟踪

转到解决方案资源管理器中的当前活动文件非常有用。您可能想要重命名、移动它、查看文件的属性或导航到附近的文件。不管它是什么,您最不想做的就是在解决方案的项目树中手动搜索它。

多年来,我一直在使用Track Active Item选项。启用后,解决方案资源管理器会自动将所选文件更改为您当前正在编辑的任何文件。

这感觉很有成效,但缺点是在处理一堆文件后,解决方案资源管理器树变得一团糟。一切都被扩展了,不可能找到任何东西。还有一个小的性能影响。所以现在我改变了策略。我发现有一个快捷方式可以根据需要导航到该项目,而不是自动跟踪活动项目。

默认快捷方式是Ctrl + [, S. 我尽量保持默认值。不是最容易记住的,但你会习惯任何事情。

这意味着我的解决方案资源管理器现在保持不变。展开的项目保持展开状态,如果我不进行滚动,则不会滚动任何内容。

5. Ctrl + T 技巧

有很多方法可以在您的解决方案中导航。我最喜欢的方式是Ctrl + T选项(Edit | Go To | Go To All)。你可以搜索任何你想要的东西,Visual Studio 会找到它。这可能是一个文件、一个类、一个属性、一个字段或一个方法。

这个窗口有一些技巧:

  1. 常规搜索使用简单的“包含”逻辑。如果文件/类/成员包含搜索输入,您将在搜索结果中看到它。

  2. 对于使用驼峰式(或 PascalCase)拼写的项目,您可以只输入首字母。例如,asdc会发现AnotherSearchDemoComponent

  1. 如果您想进一步缩小搜索范围,可以将姓名首字母与部分姓名组合在一起。

  1. 您可以将搜索范围缩小到特定项目类型:

    • f [search] 只查找文件
    • r [search] 在最近的文件中查找
    • t [search] 看类型
    • m [search] 看起来在成员
    • # [search] 看符号

诚然,Visual Studio 还可以从 ReSharper 学到更多东西,它还增加了模糊搜索功能。

概括

Visual Studio 是一个强大的工具。你可以每天使用它,哪怕连续十年也可能仍然不知道它的每一个功能。我自己每天都会发现新事物,并且我已经写了一关于它的。 我还在继续挖掘它的新功能,我相信你也可以。

你应该知道的提升Visual Studio开发能力的5个技巧的更多相关文章

  1. SharePoint 2013 工作流之Visual Studio开发示例篇

    SharePoint 2013引用了WF4.0 Foundation,支持使用Designer和Visio进行设计,但是功能受限,而Visual Studio可以开发功能更加丰富的工作流,下面我们简单 ...

  2. visual studio 开发linux程序

    VisualGDB支持Linux的原理是,通过ssh连接到Linux系统上通过ssh给linux下达命令 . (类似visualgdb的有windgb  ,这2个都是商业软件.) Visual GDB ...

  3. 解决无法连接到visual studio开发服务器的问题

    今天vs抽风,调试网站出现下图那样: 然后我开始百度搜索 "无法连接到visual studio开发服务器" 出现很多文章: 打开一篇问题,看了里面的内容, 那个解决办法也不是最好 ...

  4. 微软为Visual Studio开发助手拓展C++支持

    近日,微软宣布了一项 Visual Studio“开发助手”(Developer Assistant)插件的重大更新,其现已支持“基于 C++ 的情境感知 web 解决方案”.开发助手能够嵌入 Vis ...

  5. Visual Studio 开发(二):VS 2017配置FFmpeg开发环境

    在上篇文章Visual Studio 开发(一):安装配置Visual Studio Code 中,我们讲了一下如何配置VS CODE,来编写和调试C的代码.如果你已经使用VS Code回顾和复习好C ...

  6. visual studio开发工具的C#主流控件属性一览表

    visual studio开发工具的C#主流控件属性一览表 详细的介绍了各控制属性的详细中文介绍 C#控件及常用设计整理 1.窗体 1.常用属性 (1)Name属性:用来获取或设置窗体的名称,在应用程 ...

  7. 使用Visual Studio开发跨平台的iOS应用程序

    [原文发表地址]Developing cross-platform iOS application using Visual Studio [原文发表时间]2015/6/4 C ++是一种流行的高级编 ...

  8. 使用Visual Studio开发Python

    Python优秀的集成开发环境有PyCharm,Visual Studio Code等,当然你仍然可以使用Visual Studio进行开发.如果你熟悉Visual Studio,使用Visual S ...

  9. Visual Studio开发首选!DevExtreme v19.1.6全新来袭

    DevExtreme Complete Subscription是性能最优的 HTML5,CSS 和 JavaScript 移动.Web开发框架,可以直接在Visual Studio集成开发环境,构建 ...

  10. emWin模拟器Visual Studio开发时无法printf打印的问题

    1.emWin模拟器 为了方便用户学习evWin框架,Segger设计了一个PC仿真的工具,可以测试绝大部分GUI的功能,除了方便使用者学习之外,还可以加速项目开发进度.毕竟在PC上用Visual S ...

随机推荐

  1. Laravel组件化开发学习笔记

    组件化开发就是基于组件来进行迭代开发,而不是从零开始开发 1.语法基础 组件开发的基础语法是命名空间. 可以使用魔法常量__NAMESPACE__可以直接获取当前命名空间的名称的字符串. 例如: &l ...

  2. Linux-搜索-文件-find-locate-内容过滤-grep

  3. [转帖]【oracle】oracle查询表存储大小和表空间大小

    目录 查看表分配的物理空间大小 查看表实际存储空间大小 查看每个表空间的大小 查看表空间大小及使用率 查看数据库中数据文件信息 查看临时表空间信息 oracle表大小有两种含义,即表分配的空间大小和实 ...

  4. [转帖]ORACLE等待事件:enq: TX - row lock contention

    https://www.cnblogs.com/kerrycode/p/5887150.html enq: TX - row lock contention等待事件,这个是数据库里面一个比较常见的等待 ...

  5. [转帖]MySQL快速备份表

    https://www.cnblogs.com/JaxYoun/p/14264593.html 1.复制表结构及数据到新表 CREATE TABLE 新表 SELECT * FROM 旧表 这种方法会 ...

  6. [转帖]Linux cut命令

    https://www.runoob.com/linux/linux-comm-cut.html#:~:text=Linux%20cut%E5%91%BD%E4%BB%A4%201%20-b%20%E ...

  7. [转帖][问题已处理]-kubernetes中2次不同的oom处理

    https://dandelioncloud.cn/article/details/1598699030236577793 起因: 同事反馈 服务挂了,kuboard上查看是服务挂掉了,livenes ...

  8. mysql8 initialize 命令 初学版 lower_case_table_names

    1. 今天开发找我跟我说 我安装的mysql 不对. 比较蛋疼.  需要修改一个参数 但是数据库已经初始进去了  重装起来比较麻烦. 硬着头皮搞. 2. 参数的名字为: lower_case_tabl ...

  9. 从一次CPU打满到ReDos攻击和防范

    作者:京东物流 刘海茂 近期碰到一起值班报警事件,web 应用服务器 CPU 消耗打到 99%,排查后发现是因为 ReDoS 导致了服务器发生了资源被耗尽.访问系统缓慢的问题,通过排查过程从而分享下 ...

  10. vm-storage在全部都是新metric情况下的写入性能测试

    作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 vm-storage中,写入索引的性能要比写入data p ...