2010-01-22 5 views
3

Chaque fois que ReSharper rencontre code comme ceci:Comment obtenir ReSharper pour montrer une refactorisation qu'il a déjà

(treeListNode.Tag as GridLine).AdvertiserSeparation = 5; 

il vous présente une solution possible (puisque treeListNode.Tag comme GRIDLINE peut être NULL). Il dit: «Remplacer par Direct Cast», qui transforme le code en ce qui suit:

((GridLine) treeListNode.Tag).AdvertiserSeparation = 5; 

C'est génial. Cependant, lorsqu'il rencontre le code comme ceci:

GridLine line = treeListNode.Tag as GridLine; 
line.AdvertiserSeparation = 5; 

ReSharper affiche simplement un avertissement 'System.NullReferenceException possible', mais ne me propose pas 'Remplacer par Cast Direct'. Existe-t-il un moyen de faire en sorte que Resharper m'offre ce refactoring, puisqu'il l'a déjà?

Répondre

1

Dans le premier cas, l'exception est dans l'expression et le correctif est également dans l'expression. Donc, le correctif est disponible. Dans le second cas, l'exception se trouve sur la ligne d'affectation basée sur une variable, mais le correctif est dans l'expression non liée. Par conséquent, Resharper ne rendra pas le correctif disponible ici.

Les gars de Jetbrains sont très réactifs, donc vous pouvez enregistrer un cas.

http://www.jetbrains.net/jira/browse/RSRP

Questions connexes