如果你像我一样,或许你也沉迷于开发者工具。这就是我喜欢 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. java基础(13)--静态变量、静态代码块、实例代码块

    一.静态变量/静态代码块特点: 1.类加载时执行静态代码块,并初始化静态变量 2.先于main()执行 3.只加载一次 4.可访问静态变量,不可访问实例变量   二.实例语句块: 1.需要实例化,对象 ...

  2. zookeeper分布式锁原理及使用 curator 实现分布式锁

    本文为博主原创,未经允许不得转载: 1. zookeeper 分布式锁应用场景及特点分析 2. zookeeper 分布式原理 3. curator 实现分布式锁 1. zookeeper 分布式锁: ...

  3. Laravel - blade 基础语法和include的使用

    <!-- 1. 模板中输出PHP变量 --> @section('footer')    <div style="color:#fff">     @par ...

  4. Python Code_03数据类型

    数据类型 author : 写bug的盼盼 development time : 2021/8/27 19:59 变量定义 name = '阿哈' print(name) print('标识',id( ...

  5. 百度网盘(百度云)SVIP超级会员共享账号每日更新(2024.01.02)

    一.百度网盘SVIP超级会员共享账号 可能很多人不懂这个共享账号是什么意思,小编在这里给大家做一下解答. 我们多知道百度网盘很大的用处就是类似U盘,不同的人把文件上传到百度网盘,别人可以直接下载,避免 ...

  6. [转帖] 请求量突增一下,系统有效QPS为何下降很多?

    https://www.cnblogs.com/codelogs/p/17056485.html 原创:扣钉日记(微信公众号ID:codelogs),欢迎分享,转载请保留出处. 简介# 最近我观察到一 ...

  7. [转帖]10--k8s之数据持久化

    https://www.cnblogs.com/caodan01/p/15136217.html 目录 一.emptDir 二.hostPath 三.pv 和 pvc 1.环境准备 2.创建pv 3. ...

  8. [转帖]【Python】计算程序运行时间的方法总结

    一.第一种方法 利用time包: import time def test(): start_time = time.time() # 记录程序开始运行时间 s = 0 for i in range( ...

  9. 【转帖】什么是RLHF

    什么是RLHF? **字面翻译:**RLHF (Reinforcement Learning from Human Feedback) ,即以强化学习方式依据人类反馈优化语言模型. 强化学习从人类反馈 ...

  10. [转帖]RFC1180

    [译] RFC 1180:朴素 TCP/IP 教程(1991) 译者序 本文翻译自 1991 年的一份 RFC(1180): A TCP/IP Tutorial. 本文虽距今将近 20 年,但内容并未 ...