3

Resharperが次のようなコードに遭遇したときはいつでも:

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

可能な修正が表示されます(GridLineとしてのtreeListNode.Tagがnullである可能性があるため)。「ダイレクトキャストに置き換えて」と書かれています。これにより、コードが次のようになります。

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

これは素晴らしい。ただし、次のようなコードが検出された場合:

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

Resharperは単に警告「PossibleSystem.NullReferenceException」を表示しますが、「ReplacewithDirectCast」を提供しません。Resharperにこのリファクタリングを提供させる方法はありますか?

4

1 に答える 1

1

最初のケースでは、例外は式にあり、修正も式にあります。したがって、修正プログラムが利用可能になります。2 番目のケースでは、例外は変数に基づく代入行にありますが、修正は無関係な式にあります。したがって、Resharper はここで修正を提供しません。

ただし、Jetbrains の担当者は非常に反応が良いので、ケースを登録できます。

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

于 2010-01-22T04:16:49.193 に答える