I've always known Resharper could improve my productivity but I've just not found the time to invest using it properly yet. I blogged recently about
Explore Stack Trace and I'm starting to think of Resharper as an essential piece of kit rather than a nice to have.
However, today I was lucky enough to have my colleague
Rupert Benbrook looking over my shoulder whilst I was working on some
Prism samples and he's something of a Resharper Ninja and mentored me through some cool features. Here are my favourites so far.
Alt+Insert
I didn't know about this little chap. Hit Alt+Insert and you'll get the Generate menu.

This is really handy for creating Constructors and the like. I particularly like the fact that if I choose Constructor I get to choose which class members should be specified on the constructor.

public class MyClass
{
private readonly string _foo;
public MyClass(string foo)
{
_foo = foo;
}
}
Nice.
Introduce Field and Initialise
Given Prism's (default but pluggable) use of Unity it's really common to need to add a new parameter to a constructor and store the instance as an instance member. It couldn't be easier, just specify the constructor parameter and put the cursor on the new parameter. Now hit Alt+Enter and choose

public class MyClass
{
private readonly string _foo;
private readonly IRegionManager _regionManager;
public MyClass(string foo, IRegionManager regionManager)
{
_foo = foo;
_regionManager = regionManager;
}
}
Nice!
Initialize Field from Constructor(s) Parameter
And you can go the other way too - have a field that you'd like to initialize in a constructor?

public class MyClass
{
private readonly string _foo;
private readonly IRegionManager _regionManager;
private readonly IUnityContainer _unityContainer;
public MyClass(string foo, IRegionManager regionManager, IUnityContainer unityContainer)
{
_foo = foo;
_unityContainer = unityContainer;
_regionManager = regionManager;
}
}
Niiiice!
Surround With ...
It's common to want to quickly surround a section of code with a try/catch block and I hate doing this manually. With Resharper just hit Ctrl+E followed by U and you'll get the 'Surround With' menu.

public MyClass(string foo, IRegionManager regionManager, IUnityContainer unityContainer)
{
try
{
_foo = foo;
_unityContainer = unityContainer;
_regionManager = regionManager;
}
catch (Exception exc)
{
Console.WriteLine(exc);
}
}
Handy.
I'm going to be using Resharper more and more from now on. Let's hope Rupert runs a nice series of Resharper tips on his
blog. I'll certainly be watching. Cheers Rupert!

Post By
Josh Twist
2:39 AM
05 Dec 2008
» Next Post:
NxtGenUG Southampton: Databinding, Databinding, Databinding
« Previous Post:
Making the ScrollViewerThumbnail interactive
Comments are closed for this post.
Posted by
Rupert Benbrook
@
05 Dec 2008
7:40 AM
Ha! Thanks Josh. Now I'm going to have to do a series on ReSharper shortcuts! :)