2009-01-31 4 views
13

내 수업에서 이벤트에 등록 할 때마다 평소와 같이 게으르다가 자동으로 대리자 만들기를 만드는 Visual Studio 2008 Pro에 내장 된 자동 완성 기능을 사용하고 관련 방법을 사용합니다.무엇이 '중복 대표 작성'을 구성합니까?

public abstract class FooBase 
{ 
    protected event EventHandler<MyValueChangedArgs> MyValueChanged; 

    protected FooBase() 
    { 
     MyValueChanged += 
      new EventHandler<MyValueChangedArgs>(HandleMyValueChanged); 
    } 

    private void HandleMyValueChanged(object sender, MyValueChangedArgs e) 
    { 
     // Some handling logic 
    } 
} 

보통 Visual Studio가 나를 위해 이벤트 처리기를 생성 할 때 두 번 생각하지 않지만 Refactor에서 추천을 받았습니다. Pro에서 "중복 대리인 만들기 제거"를 선택합니다. 권장 결과는 다음과 같습니다.

public abstract class FooBase 
{ 
    protected event EventHandler<MyValueChangedArgs> MyValueChanged; 

    protected FooBase() 
    { 
     MyValueChanged += HandleMyValueChanged; 
    } 

    private void HandleMyValueChanged(object sender, MyValueChangedArgs e) 
    { 
     // Some handling logic 
    } 
} 

어떤 상황에서 대리인 만들기가 중복되고 언제 대리인 만들기가 적절한가?

감사합니다.

답변

4

리팩터링이라고 생각합니다. 라인

MyValueChanged += new EventHandler<MyValueChangedArgs>(HandleMyValueChanged); 

단축 할 수 있고, 컴파일러가 이벤트 핸들러 생성과 TEventArgs 형식 인수를 추론하는 것입니다 어떤 상황에서

이 창조 중복 위임 ...를 알려줍니다 때 입니다 적절한 위임자 생성?

디자이너에서 생성 한 코드에

... 그것에 대해

5

죄송합니다. 익명 메소드가 C#에 추가되었을 때 더 짧은 코드를 생성하기위한 제품 일정에 시간이 없었습니다.

난 항상 생성 된 코드를 편집하여 추가 구문을 제거합니다.