每当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为我提供这种重构,因为它已经有了它?
答案 0 :(得分:1)
在第一种情况下,异常位于表达式中,修复也位于表达式中。因此修复程序可用。在第二种情况下,异常在基于变量的赋值行上,但修复在不相关的表达式中。因此Resharper不会在这里提供修复。
Jetbrains的人非常敏感,所以你可以记录案例。