Как заставить 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 очень отзывчивы, так что вы можете записать дело.