Как заставить Resharper показать Рефакторинг, который у него уже есть

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

(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 ответ

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

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

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

Другие вопросы по тегам