2013-09-16 4 views
0

Action에 대한 확장 방법을 만들었습니다. 코드에서 action()을 모두 action.SafeInvoke()으로 바꾸고 싶습니다. 그러나 문제는 action이 단지 var 이름의 예일 뿐이며 실제로는 모두 다릅니다. ()로 검색하면 분명히 끔찍한 결과가 나타납니다. Action으로 검색하고 코드에서 모든 개별 var의 참조를 찾고 그 중 직접 호출을 찾는 것은 다소 느립니다.코드에서`action()`을 모두 찾는 방법은 무엇입니까?

호출을 변수 이름을 알 수 없을 때 () 연산자로 찾으실 수 있습니까? 내가 알고있는 것처럼

+0

원본 이름 바꾸기/제거하고 다시 작성하십시오. 이제 오류 목록에 업데이트해야하는 모든 통화가 나열됩니다. – asawyer

+0

당신은 전체'Action' 클래스를 의미합니까? 그것은 내장되어있어, 할 수 있는지 잘 모르겠습니다. 그리고 기본적으로 코드에서'Action'의 각 항목을 찾는 것과 같습니다. – user1306322

+0

오, 나는 당신의 새로운 확장 메소드로 메소드에 대한 모든 호출을 변경하고자하는 것으로 읽었다. – asawyer

답변

2

, 당신은 같은 유형 Action의 인스턴스가 있습니다

Action foo = ... 
Action bar = ... 

을 그리고 당신은 코드가 다음 :

foo(); 
bar(); 

당신은 foo.SafeInvoke()bar()foo() 변경됩니다 뭔가를 원하는 bar.SafeInvoke().

Visual Studio에는 자동으로이 작업을 수행 할 수있는 작업이 없으며 수행 할 작업을 작성하는 것이 중요하지 않습니다. 수동으로 변경하는 것보다 확장 프로그램에서 훨씬 더 많은 시간을 보냅니다.

Visual Studio의 "찾기 기능"기능을 사용하여 Action이 사용 된 모든 장소를 찾을 수 있습니다. 그러면 적어도 변경해야 할 위치를 찾을 수 있습니다.

귀하의 SafeInvoke에 대해 알고 싶습니다. 그것이 모두 null 체크 인 경우, 정말로 필요한지 고려해 볼 수 있습니다.

+0

기본적으로 네, 널 확인을 수행하고 콘솔에 한번 출력합니다. – user1306322

관련 문제