如何让Resharper显示它已经拥有的重构

时间:2010-01-22 02:02:18

标签: visual-studio-2008 refactoring resharper directcast

每当Resharper遇到这样的代码时:

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

它为您提供了一个可能的修复(因为treeListNode.Tag作为GridLine可能为null)。它说:'替换为Direct Cast',将代码转换为以下内容:

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

这很棒。但是,当它遇到这样的代码时:

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

Resharper只显示一个警告'Possible System.NullReferenceException',但不提供'替换为Direct Cast'。有没有办法让Resharper为我提供这种重构,因为它已经有了它?

1 个答案:

答案 0 :(得分:1)

在第一种情况下,异常位于表达式中,修复也位于表达式中。因此修复程序可用。在第二种情况下,异常在基于变量的赋值行上,但修复在不相关的表达式中。因此Resharper不会在这里提供修复。

Jetbrains的人非常敏感,所以你可以记录案例。

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