La nouvelle correspondance du modèle de Resharper 5 semble très puissante, bien qu'il faut un peu de bricolage pour déterminer comment l'utiliser. P>
Pour ceux qui ne connaissent pas cette fonctionnalité, il vous permet de rechercher des modèles spécifiques dans votre code. Les instances de tels modèles peuvent éventuellement être remplacées par une alternative. En Intellij, cela s'appelait la recherche structurelle et remplacer. C'est beaucoup plus puissant que la simple recherche / remplacement de Regex. P>
J'aimerais collecter une série de modèles que les gens utilisent afin que je puisse mieux utiliser cette fonctionnalité. P>
Je propose que chaque réponse inclue: p>
9 Réponses :
.NET 4 introduit le avant: em> p> après: em> p> xml: p> < Pré> xxx pré> h1> System.Diagnostics.stopwatch.Diagnostics.stopwatch.Reesteart () CODE> Méthode qui peut ranger votre code. P>
.NET 4 introduit la méthode avant: em> p> après: em> p> xml: p> < Pré> xxx pré> h1> system.enum.hasflag code> qui peut ranger votre code. p>
Joli. J'ai toujours écrit une méthode privée pour faire cela comme je me suis détesté me répétant, mais maintenant je sais mieux! :)
jetbrains offrent un Catalogue de modèle d'exemple pour la recherche structurelle et remplacer pour le téléchargement contenant 17 motifs : p>
Par exemple, Microsoft recommande (et L'analyse de code / FXCOP génère avertissements appropriés) si vous faites une comparaison entre une valeur de chaîne et une chaîne vide, utiliser le
string.isnullorempty () code> méthode. P> blockQuote>
http: //david.gardiner. net.au/2010/02/resharper-5-tructural-search-and.html P>
R # fait cela hors de la boîte, à la construction 5.1.1757.11 au moins. Ce serait bien d'avoir un soutien à la conversion vers string.isnullorwhitepace code> cependant.
Celui-ci est différent. J'ai découvert plus tard dans mon projet que Mbunit affirme que la comparaison des valeurs de propriété à Enums ne rendant pas de beaux messages lors de l'utilisation du Alors j'ai créé un motif pour trouver ceci: p> ... et le remplace par ceci: p> Voici le motif: p> p> p> ASTERTEX.THAT CODE> Syntaxe.
supprimer si em> enveloppe strong> autour si em> corps. Exemple: P> Ce code: P> <Pattern Severity="HINT">
<Comment>if</Comment>
<ReplaceComment>Remove enclosing if</ReplaceComment>
<ReplacePattern>$body$</ReplacePattern>
<SearchPattern>if($condition$){$body$}</SearchPattern>
<Params />
<Placeholders>
<StatementPlaceholder Name="body" Minimal="-1" Maximal="-1" />
<ExpressionPlaceholder Name="condition" ExpressionType="System.Boolean" ExactType="True" />
</Placeholders>
</Pattern>
enlever les accolades enfermées forte> autour d'un corps. Exemple: p> Ce code: p> <Pattern Severity="HINT">
<Comment>Curly braces with body</Comment>
<ReplaceComment>Remove braces</ReplaceComment>
<ReplacePattern>$body$</ReplacePattern>
<SearchPattern>{$body$}</SearchPattern>
<Params />
<Placeholders>
<StatementPlaceholder Name="body" Minimal="-1" Maximal="-1" />
</Placeholders>
à 'comme "casting fort>. Exemple: P> Ce code: P> <Pattern Severity="HINT">
<Comment>Cast</Comment>
<ReplaceComment>To 'as' cast</ReplaceComment>
<ReplacePattern>$exp$ as $type$</ReplacePattern>
<SearchPattern>($type$)$exp$</SearchPattern>
<Params />
<Placeholders>
<TypePlaceholder Name="type" Type="" ExactType="True" />
<ExpressionPlaceholder Name="exp" ExpressionType="" ExactType="True" />
</Placeholders>
</Pattern>
à couler régulier fort>. Exemple: P> Ce code: P> <Pattern Severity="HINT">
<Comment>Cast (as)</Comment>
<ReplaceComment>To regular cast</ReplaceComment>
<ReplacePattern>($type$)$exp$</ReplacePattern>
<SearchPattern>$exp$ as $type$</SearchPattern>
<Params />
<Placeholders>
<ExpressionPlaceholder Name="exp" ExpressionType="" ExactType="True" />
<TypePlaceholder Name="type" Type="" ExactType="True" />
</Placeholders>
</Pattern>
C'est quelque chose que j'espérais voir ajouté à R # depuis un moment maintenant. Je n'avais pas envisagé de le faire via SSR. Merci! L'opération inverse pourrait être utile aussi (moulée vers comme code>).
@ AUTREWNOAKES J'ai aussi ajouté l'opération inverse. Voir la réponse à 'comme' Cast I> ( Stackoverflow.com/a/9330016/1187616 )
Je suis nouveau à Resharper 5, mais voulez-vous dire que les cas où Resharper (par exemple) recommande d'utiliser Linq à la place d'une foreseach qui existe uniquement pour localiser un sous-ensemble d'objets dans une collection?
@Jyelton - Resharper recommandera ce genre de chose hors de la boîte. La fonctionnalité que je parle ici est celle qui vous permet d'ajouter votre propre type de suggestions / astuces / avertissements / erreurs. Si vous voulez que R # reporte certains types de choses que ce n'est pas déjà, vous pouvez les programmer en vous-même. Voir certains des exemples que j'ai postés ci-dessous.
Merci, cela explique le motif correspondant à moi. Cela ressemble à une grande référence.