2013-03-16 3 views
1

내 이벤트에 가입 한 모든 참석자의 탈퇴가 필요합니다. 하지만 그것을 할 수있는 두 가지 방법을 찾았습니다.이벤트 구독 취소

class Cls 
{ 
    delegate void doDel(); 
    static event doDel doE; 

    void Uns 
    { 
    //first 
    foreach (doDel item in doE.GetInvocationList()) 
    { 
     doE -= item; 
    } 

    //second 
     doE = null; 
    } 
} 

어떤 차이가 있습니까? 그리고 가장 좋은 방법은 무엇이며 그 이유는 무엇입니까?

답변

1

첫 번째 접근법은 정확합니다. MSDN 상태로 :

  • 빼기 할당 연산자 사용 - 이벤트에서 탈퇴 (=)를 :

    publisher.RaiseCustomEvent - = HandleCustomEvent; 모든 가입자가 이벤트에서 구독을 취소 한 경우

, 게시자 클래스에서 이벤트 인스턴스가 null로 설정됩니다.

관련 문제