Evil 域

当Evil遇上先知
posts - 74, comments - 321, trackbacks - 8, articles - 0

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

 

它们只是不起眼的小技巧。日积月累,它们让我们的工作、学习更有效率,让我们更加专注于逻辑本身,它们是.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.

Feedback

#1楼  回复 引用 查看   

2011-11-01 08:50 by 潜水毕业      
这个一定要顶

#2楼  回复 引用 查看   

2011-11-01 10:16 by 传奇洛子      
Hi Saar, this is Tad.
Cool, nice share. I am enjoying your blog.

#3楼  回复 引用 查看   

2011-11-01 12:08 by 何苦丶      
谢谢分享,新人学习了。

#4楼[楼主]  回复 引用 查看   

2011-11-02 00:44 by Saar      
Thank you guys. I feel encouraged :-)

#5楼  回复 引用 查看   

2011-11-03 10:28 by sukerdong      
Day Day Up!

#6楼  回复 引用 查看   

2011-11-04 11:07 by 青蛙王子。      
我的ctrl+.为啥是 shift+alt+F10

#7楼[楼主]  回复 引用 查看   

2011-11-04 11:21 by Saar      
引用青蛙王子。:我的ctrl+.为啥是 shift+alt+F10

謝謝提問。這個我漏掉了,Visual Studio為不同習慣的用戶提供了不同的快捷鍵設置。每一組設置稱為一個Profile。如果使用的是VB的Profile,那麼SmartTag的快捷就是Shift+Alt+F10。
更改Profile的方法:菜單Tools | Import & Export Settings。選擇Reset All Settings,然後就可以選擇不同的Profile了。

#8楼  回复 引用 查看   

2011-11-04 11:34 by 青蛙王子。      
@Saar
我的就是vs啊
快捷键是shift+alt+F10
ctrl+.无效
-------------------------
还有Application这个是右键菜单
我的vs里边右键没有o这个快捷啊
所以 Application+o+a也无效啊!!

#9楼[楼主]  回复 引用 查看   

2011-11-04 11:46 by Saar      
引用青蛙王子。:
@Saar
我的就是vs啊
快捷键是shift+alt+F10
ctrl+.无效
-------------------------
还有Application这个是右键菜单
我的vs里边右键没有o这个快捷啊
所以 Application+o+a也无效啊!!

==============
能不能告诉我你用的是什么语言(C#?VB.NET?),开发的是什么项目(WinForm? Web?)?

我试了一下,即使在VB Profile下,也是可以用Ctrl+.的。请重设一下Profile,检查一下是不是开着中文输入法,把中文输入法关掉试试。

#10楼  回复 引用 查看   

2011-11-04 11:54 by 青蛙王子。      
@Saar
c#开发web 我重设也没用啊 不知道咋回事 中文 英文都没有效果!!!

#11楼[楼主]  回复 引用 查看   

2011-11-04 12:01 by Saar      
引用青蛙王子。:
@Saar
c#开发web 我重设也没用啊 不知道咋回事 中文 英文都没有效果!!!

這就奇怪了。有裝其它的插件啥的嗎?試試devenv /SafeMode。或者,你能不能截張圖貼上來看看?

#12楼  回复 引用 查看   

2011-11-06 10:02 by 低调路过      
封装字段:选择 字段名,ALT+R,你会有很多选择,封装字段等等

#13楼  回复 引用 查看   

2011-11-07 10:58 by 今朝-TODAY      
这么多回复,恭喜恭喜~!

#14楼[楼主]  回复 引用 查看   

2011-11-08 03:29 by Saar      
引用低调路过:封装字段:选择 字段名,ALT+R,你会有很多选择,封装字段等等

谢谢补充!!!没错没错,Refactor菜单里有好多好使的东东。

#15楼  回复 引用 查看   

2011-11-30 15:25 by hautbbs      
怎么不使用英文的vs进行演示啊?