惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

H
Help Net Security
J
Java Code Geeks
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
H
Hackread – Cybersecurity News, Data Breaches, AI and More
V
Visual Studio Blog
G
Google Developers Blog
V
V2EX
The Register - Security
The Register - Security
博客园 - 三生石上(FineUI控件)
云风的 BLOG
云风的 BLOG
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
博客园_首页
S
SegmentFault 最新的问题
博客园 - Franky
Martin Fowler
Martin Fowler
Stack Overflow Blog
Stack Overflow Blog
A
About on SuperTechFans
人人都是产品经理
人人都是产品经理
aimingoo的专栏
aimingoo的专栏
罗磊的独立博客
C
Check Point Blog
MyScale Blog
MyScale Blog
T
The Blog of Author Tim Ferriss
MongoDB | Blog
MongoDB | Blog
The GitHub Blog
The GitHub Blog
Last Week in AI
Last Week in AI
Microsoft Azure Blog
Microsoft Azure Blog
IT之家
IT之家
F
Fortinet All Blogs
Jina AI
Jina AI
P
Proofpoint News Feed
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
阮一峰的网络日志
阮一峰的网络日志
B
Blog
L
LangChain Blog
月光博客
月光博客
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
宝玉的分享
宝玉的分享
博客园 - 【当耐特】
T
Tailwind CSS Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
Microsoft Security Blog
Microsoft Security Blog
WordPress大学
WordPress大学
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
B
Blog RSS Feed
博客园 - 聂微东
Hugging Face - Blog
Hugging Face - Blog
M
MIT News - Artificial intelligence
GbyAI
GbyAI

博客园 - Saar

LightSwitch 2011 实践之个人汽车仓库 —— 起步 实战 WPF Jump List 编程 实战Bing MAP REST服务的封装、调用 选好 Async 函数的返回类型 用WCF + Entity Framework 序列化时的陷阱 大家都来搭架构 —— VS 2010 Layer Diagram (层图) 基本使用 基于Entity Framework 4.1实现一个适用于单元测试的MockDbContext(下) 基于Entity Framework 4.1实现一个适用于测试的MockDbContext(上) 利用IProgress轻松搞定进度条编程 C# 5.0功能之Async一瞥 C#不是C++ 之 委托(Delegate) C#不是C++ 之 泛型(Generic) Silverlight 学习笔记——MVVM模式实现主从数据显示 Silverlight 学习笔记——用MediaElement制作在线音乐播放器 Silverlight 学习笔记——应用程序模型 Visual Studio 2010 部分新功能概览-QS, HR, GFU Silverlight学习笔记——依赖属性和路由事件 Silverlight 学习笔记——布局 Visual Studio 2010 部分新功能概览-Dynamic & Named / Optional Parameters
让我们更快一点的Visual Studio的技巧们
Saar · 2011-11-01 · via 博客园 - Saar

积跬步以至千里。积小流以成江海。

它们只是不起眼的小技巧。日积月累,它们让我们的工作、学习更有效率,让我们更加专注于逻辑本身,它们是.NET程序员的好朋友,它们是Visual Studio的小技巧……我们,真的认识它们吗? Smile

如果想尽快掌握这些技巧,请打开Visual Studio亲自试一下这些技巧,希望找到你喜欢的技巧的。

image

(图片来自Bing)

让代码写得再快一些

怎么快速的创建一个类?创建一个应用程序,找个能建类的空地,试试这个:class<Tab><Tab>

image

别急,这个技巧还没有完。直接输入想要的类名,然后敲回车。

经常创建属性?试试prop<tab><tab>

经常写foreach语句?试试foreach<tab><tab>

经常写控制台应用程序?试试cw<tab><tab>

如果有多个高亮区怎么办?用Tab跳转。

怎么找到其它的Code Snippets?试试通过上下文菜单或者快捷键。

image

让命名空间操作再快一些

经常写文件相关操作但悲剧的发现System.IO不在默认的引用命名空间里面?呵呵,试试这个。直接在方法中输入File+<ESC>+Ctrl+.+<Enter>

image

好吧,这个组合看上去有点复杂。让我们来看分解动作,一旦它成为了肌肉记忆,一切都将变得那么自然Smile

首先,File + <ESC>,输入类名File,<ESC>是用于消除Completion List。这时,可以看到File左下角有一个小小的蓝色的小块,这个小块说明已经有Smart Tag可用了;

然后,Ctrl+.用于打开SmartTag,通常,添加using会是第一个选项。

最后,<Enter>应用第一项。

例外:这个技巧不适用于扩展方法。

让命名空间精简而有序

好吧,如果你希望你的类写完以后,让引用的命名数量变得最少并且按字母排序,你可以用下面这个组合:<Application>+<o>+<a>

不知道<Application>键是哪一个键?我也不知道,从这里借个名称。其实就是右Ctrl键左边的那一个,用来调出上下文菜单的键。

让继承抽象类和实现接口再快一些

当手上有一个抽象类,有N个抽象方法,当抽象类被继承时,重写这些方法名称费时费力又无聊——像是在抄写方法名。为什么不让Visual Studio来做呢?

为了方便大家动手,请把下面的代码复制、粘贴到Visual Studio中:

    public abstract class Person
    {
        public abstract void Walk();
        public abstract void Eat();
    }
 
    class Baby : Person
    {
    }

然后把光标放到Baby后面的Person上,看到Smarttag了?那就Ctrl+.+<Enter>吧。

此方法同样适用于接口。

让重命名再快一些

经常为了偷懒取个比较短的变量名?有的team会不允许使用缩写作为变量名,而全称又太长,这时,可以先写短名,然后直接改名。例如,有些团队不允许单字母的变量,像这里的i:

for (int i = 0; i < 100; i++)
{
    System.Console.WriteLine(i + 1);
}

首先,请通过for<tab><tab>生成for语句,然后使用cw<tab><tab>来生成WriteLine语句。

然后,把光标定位在第一个i的后面,输入ndex。

看到SmartTag的提示小块了?Ctrl+.+<Enter>

写在最后

除了给引用命名空间引用排序外,其实,我们只接触到了两个快捷键:

<tab><tab>

Ctrl+.

前者主要用于插入code snippets,后者则用于调用SmartTag。

这些不是什么高深的技术,但却是写代码时天天要用到的技巧。有这些小技巧的日积月累,相信会水滴石穿。

这些技巧不能帮助你写出更出色的代码来,但是,习惯以后,它可以提升我们写代码的速度,进而让我们有更多的时间花在提高代码质量上。

Little knowledge is dangerous.