대상용(17) - 멀티캐스트 의뢰 및 작업

1370 단어

1. 정의: 의뢰가 여러 가지 방법을 가리키도록 하기

  • 의뢰에 a+=function를 추가합니다

  • 의뢰 제거 방법 a-=function

  • 멀티캐스트 의뢰의 호출 순서는 추가 방법의 순서에 따라 호출하고, 먼저 호출을 추가합니다..

  • 의뢰한 방법에 반환값이 있으면 호출된 마지막 방법의 결과만 얻을 수 있습니다..

  • static void Test1(){
    
      Console.WriteLine("Test1");
    
    }
    
    static void Test2(){
    
      Console.WriteLine("Test2");
    
    }
    
    static void Mian(string[] args){
    
      Action a = Test1;
    
      a += Test2; // 
    
      a();
    
      //   Test1 Test2
    
      a -= Test1; // a Test1 
    
      a -= Test2; // a Test2 
    
      //  , , crash。   
    
      if(a!=NULL){
    
        a();
    
      }
    }
    

    멀티캐스트 의뢰 중 모든 의뢰를 획득하는 방법
    Action a1 = Method1;
    
    a1 += Method2;
    
    Delegate[] delegates = a1.GetInvocationList();
    
    foreach(delegate d in delegates){ //  , 
    
      d.DynamicInvoke(NULL);
    
    }
    
  • 작업 배치

  • 1. 의뢰를 사용하여 하나의 방법을 실현하고 이 방법에 두 개의 부동점형 파라미터와 하나의 연산 방법을 전달하여 최종적으로 이 두 수의 연산 결과를 되돌려주도록 요구한다.
    2. 시스템 목록의sort 방법을 사용하여 의뢰 방법을 전달하고 사용자 정의 클래스(예를 들어 학생 클래스)를 사용자 정의 방식(예를 들어 성적, 나이, 키, 체중 등)에 따라 정렬한다.
    숙제
     MyList ,  sort , , 。 ( 2 List sort )
    

    4. 숙제 4 복습 전의 지식점을 되돌아보고 수업의 사례, 코드를 포함한다.이전의 숙제를 다 하지 못한 학생은 완성하려고 시도한다.
    저자: silence_k 링크:http://www.jianshu.com/p/3ab47e2bfdcb출처: 저작권은 작가의 소유이다.상업 전재는 작가에게 연락하여 권한을 얻으십시오. 비상업 전재는 출처를 밝히십시오.

    좋은 웹페이지 즐겨찾기