2010-01-22 4 views
3

이있는 리팩토링 보여 얻는 방법 : 그것은 가능한 수정 (treeListNode.Tag 때문에 눈금 선이 null이 될 수로) 당신을 선물ReSharper에서이 ReSharper에서이 같은 코드를 발견 할 때마다 이미

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

합니다. 그것은 다음과 같이 코드를 바꾸는 '직접 형 변환으로 바꾸기'라고 말합니다 :

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

이것은 위대합니다. 그러나, 그것은 다음과 같은 코드를 발견 :

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

ReSharper에서 단순히 경고 '가능한 System.NullReferenceException'을 표시하지만 '직접 캐스트로 교체'에 저를 제공하지 않습니다. 이미 Resharper가 나에게이 리팩토링을 제공하도록하는 방법이 있습니까?

답변

1

첫 번째 경우에는 예외가 표현식에 있고 수정 사항도 표현식에 있습니다. 그래서 수정 사항을 사용할 수 있습니다. 두 번째 경우에는 예외가 변수를 기반으로하는 할당 행에 있지만 수정 사항은 관련없는 표현식에 있습니다. 따라서 Resharper는 여기서 수정을 제공하지 않습니다.

Jetbrains 친구들은 대단히 반응이 좋으므로 케이스를 기록 할 수 있습니다.

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

관련 문제