Completion Tips and Tricks
In this topic:
- Correcting Length/Count mistyping
- Generating equality and flag checks for enumeration types
- Creating type parameter from usage in method parameters
- Smart behaviour of dot and semicolon
- Correcting prefixes in verbatim string interpolation
Correcting Length/Count mistyping
ReSharper prevents you from stumbling over mistyped
Length
/Count
properties of arrays/collections.
As soon as you erroneously start typing the
Count
property for a usage of an array, ReSharper will allow you to pick it from the
completion list and replace with the
Length
property, which you probably meant to type.
In a similar way, it will help you call the
Count
property on a collection usage when you start typing the
Length
property by mistake.
The correct property will be there as soon as you accept the completion suggestion:
void Foo(int[] array, List<int> collection)
{
if(array.Length == collection.Count
}
Generating equality and flag checks for enumeration types
When you need to compare a value of enum type to one of the members of this enum, just type a dot and then pick the desired enum member in the completion list:
ReSharper will generate the comparison for you:
public enum Direction
{
North, East, South, West
}
void Turn(Direction whereTo)
{
if(whereTo == Direction.South
}
Creating type parameter from usage in method parameters
When creating generic methods, you can easily add type parameters by typing
T
for a new parameter and choosing the corresponding item in the completion list
ReSharper will add a new type parameter to the method declaration and bring you to a position where you can type the name of the type parameter in both its declaration and usage:
After you finish typing the name, press Enter or Tab to go on typing.
Smart behaviour of dot and semicolon
By default, when you choose a method in the completion list ReSharper automatically adds parentheses and
sets your caret between them in the position to start typing arguments.
If you want to call the method without parameters, and chain-call another method, you can type the dot
right where your caret is and ReSharper will move it to the right place:
myStringBuilder.AppendLine(./*caret*/)
becomes
myStringBuilder.AppendLine()./*caret*/
If you just typed a complete method call, and then decide to chain-call another method,
you do not have to move your caret, just type the dot right after the final semicolon:
myStringBuilder.AppendLine();./*caret*/
becomes
myStringBuilder.AppendLine()./*caret*/;
When you caret is inside parentheses, you do not have to move it outside to type the final semicolon,
just type it right away or after the last argument:
myStringBuilder.AppendLine("line";/*caret*/)
becomes
myStringBuilder.AppendLine("line");/*caret*/
Correcting prefixes in verbatim string interpolation
Starting from C# 6.0, you can make the same string both
interpolated and
verbatim
provided that you add the
$
and
@
prefixes in the correct order:
$@"some string"
.
With ReSharper, the order will be always correct - a mistakenly typed
@$
will be automatically replaced with the correct
$@
.