Evil 域

当Evil遇上先知

导航

Visual Studio 2010 部分新功能概览-QS, HR, GFU

Posted on 2009-12-29 22:41  Saar  阅读(924)  评论(0编辑  收藏  举报

Visual Stduio 2010 Beta2发布已经有一些时日,在今年秋季发布RTM的计划已然泡汤。目前的情况看,明年春天还会有一个RC,主要用以提高VS2010的性能和稳定性。因此,估计不会新加Feature了。让我们借助Beta来体验一下VS2010的IDE方面的一些新的功能。

  • QS – Quick Search

VS 2010将项目文件、类、方法等经常要查询的东西,通过一个统一的查询对话框提供查询。这个对话框就就是Quick Search,它像一个搜索引擎一样运作。通过快捷键Ctrl+,可以调用Quick Search,当然也可以通过编程菜单里的“Navigate To”调用。

让我们来试一下:新建一个Console Application,添加一个叫“QuickSearchDemo”的类。

    class QuickSearchDemo
    {
        public QuickSearchDemo()
        {

        }
    }

让我们通过快捷键调出Quick Search,输入“Quick”,我们找到了一个文件、一个类和一个构造函数。

QS01

这还不算什么,Quick Search还能够认识缩写,让我们试试输入QSD,看看是什么结果:

QS02

呵呵,不知道是By Design还是Bug,在Beta2中,我们没有能够通过缩写找到类文件。无论如何,这个功能将能够帮助我们快速找到我们想要的东西。

 

  • HR—Highlight Reference

Highlight Reference可以帮助我们迅速找到相关的代码。例如:

        public void TestMehtod()
        {
            var highlightReferenceDemo = new HRDemo();
            highlightReferenceDemo.TestMehtod();
        }

当我们将光标置于highlightReferenceDemo上的时候,所有这个对象都会被点亮(出现背景颜色)。

HR01

 

 

 

当把光标置于HRDemo的时候,所有这个类都会被点亮。当把光标置于上半个花括号上时,下半个花括号也会被点亮。这个功能,有一个非常有用的快捷键:Ctrl+Shift+向上方向键或者Ctrl+Shift+向下方向键。当前的光标会在不同的高亮区域之间跳转。这样,如果一个代码中多次用到了同一个对象,我们可以快速的这多个地方跳转。由于HR对花括号也有效,我们同样可以快速的在函数开始部分和函数尾之间进行跳转。

 

  • GFU—Generate From Usage

当我们在编程的时候,通常会用到一些未定义的类、方法或者接口等。以前,我们需要先跳转出当前的代码,至少把一个代码的签名写出来,然后,回来再调用它。有了GFU,VS2010允许先调用,然后,根据调用,来生成相应的类、方法或者接口。

例如,我们添加一个新类,直接输入以下代码:

    class GFUDemo
    {
        public void Test()
        {
            Calculator calculator = new Calculator();
        }
    }

由于我们没有定义类Calculator,我们会得到编译错误。但是,由于我们把Calculator当作一个类来使用,因此,VS2010也就推测出,我们是要想这么一个类。因此,它提供了一个SmartTag让我们来直接生成这个类。

GFU01

同样,当我们直接调用这个calculator的Add方法时(此时,这个方法还不存在),可以通过GFU直接生成方法的签名。

GFU02

 

生成的Calculator类的代码如下:

    class Calculator
    {
        internal int Add(int p, int p_2)
        {
            throw new NotImplementedException();
        }
    }

当需要生成的对象可以推断为接口或者类并且以I开头,默认情况下会生成一个接口。如果对生成的代码有特别需求,例如,要生成到已经存在的文件里或者要生成一个私有方法或者一个以I开头的类……那么,可以通过GFU提供的另一项(生成新类型…)来实现。

GFU03

 

  • 写在最后

虽然VS 2010提供的这些新功能看上去很小,但是,它们或者可以帮助我们更快的找到我们想要东西、或者可以给我们提供更加流畅的代码书写体验。另外,VS2010在语言方面也作出了一些改进,请参考前文《Visual Studio 2010 部分新功能概览-Dynamic & Named / Optional Parameters》。