Как заставить Resharper показать рефакторинг, который у него уже есть - PullRequest
3 голосов
/ 22 января 2010

Всякий раз, когда Решарпер встречает код, подобный этому:

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

он предоставляет вам возможное исправление (поскольку treeListNode.Tag в качестве GridLine может быть нулевым). Он говорит: «Заменить на Direct Cast», что превращает код в следующее:

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

Это здорово. Однако, когда он встречает код, подобный этому:

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

Resharper просто отображает предупреждение «Возможное исключение System.NullReferenceException», но не предлагает мне «Заменить на Direct Cast». Есть ли способ заставить Resharper предложить мне этот рефакторинг, так как он уже есть?

1 Ответ

1 голос
/ 22 января 2010

В первом случае исключение содержится в выражении, а исправление также в выражении. Так что исправление доступно. Во втором случае исключение находится в строке назначения, основанной на переменной, но исправление находится в несвязанном выражении. Поэтому Resharper не сделает исправление доступным здесь.

Ребята из Jetbrains очень отзывчивы, так что вы можете записать дело.

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

...