Asp.Net 의 Action 과 Func 의뢰 실현

머리말
최근 한 오픈 소스 프레임 소스 코드 를 읽 으 면서 저자 가 액 션 의뢰 와 펑 크 의뢰 를 많이 활용 한 것 을 발 견 했 습 니 다.제 가 프로젝트 에서 도 의뢰 에 대한 실 체 를 했 지만 오래 사용 하지 않 을 수 밖 에 없 었 습 니 다.처음에 소 화 했 던 의뢰 기초 들 은 모두 잊 어 버 렸 습 니 다.차라리,쇠뿔 도 단 김 에 빼 고,이번 공유 의 기 회 를 빌려,자신 을 도와.Net 에서 의뢰 에 관 한 기초 용법 을 다시 공 고 히 하 자.
주 제 를 향 해 곧장 달려가다.
.Net Framework 1.0 부터 저희 에 게 의뢰 한 기능 을 제공 해 주 었 습 니 다.그때.Net 내장 의뢰 Action 과 Func 가 아직 출시 되 지 않 았 다 면 1.0 버 전의 의뢰 를 살 펴 보 자.의뢰 는 말 그대로'남 을 도와 일 하 는 것'이 고 구체 적 으로 일 하 는 내용 은'방법'에 맡 겼 기 때문에 통속 적 으로 이해 합 니 다.의뢰 는 보통 한 방법 에 대한 호출 을 나타 내 는 데 사 용 됩 니 다.구체 적 으로 어떻게 사용 하 는 지,우 리 는 이어서 아래 를 보 았 다.
성명 의뢰
형식:
키워드"delegate"수식 의뢰
  • 의뢰 의 반환 값 과 파 라 메 터 는 의뢰 된 방법 과 일치 해 야 합 니 다
  • 모양:
    
    /// <summary>
      ///     
      /// </summary>
      public delegate void BuyGoodsDelegate(string Name);
      /// <summary>
      ///      
      /// </summary>
      public void BuyGoods(string Name)
      {
       Console.WriteLine($"      {Name}");
      }
    의뢰 와 방법 관련
    의뢰 와 방법 을 설명 한 후에 우 리 는 의뢰 와 방법 을 연결 시 켜 야 의뢰 가 자신 이 호출 하고 자 하 는 방법 이 무엇 인지 알 수 있다.
    
    //       
    BuyGoodsDelegate buyGoods = new BuyGoodsDelegate(BuyGoods);
    위탁 호출 방법
    의뢰 와 방법 을 연결 한 후에 우 리 는 의뢰 인 스 턴 스 를 직접 조작 하여 방법 을 호출 할 수 있 고 호출 방식 과 직접 호출 방법 이 많 지 않다.
    
    //    1
    buyGoods("  ");
    //    2
    buyGoods.Invoke("  ");
    4.효과

    위 에서 사용 한 후에 우 리 는 의뢰 가 기본적으로 구체 적 인 방법 에 따라 성명 한 것 을 발견 할 것 이다.만약 에 서로 다른 방법 에 3 개,4 개 또는 더 많은 매개 변수 가 있다 면 우 리 는 서로 다른 매개 변수 개수 의 의뢰 를 각각 성명 해 야 한다.무심코'성명 위 탁'의 문턱 이 하나 더 생 겼 다.그래서.Net Framework 3.5 버 전 이후.Net 자체 의 내장 의뢰 Action 과 Func 를 발표 했다.우 리 는 더 이상 성명 의뢰 를 하지 않 고 직접 사용 할 수 있다.
    액 션 의뢰
    Action 의뢰 는 매개 변수 가 없고 매개 변수 방법 이 있 지만 반환 유형 을 제공 하지 않 습 니 다.Action,Action,Action,Action.
    Func 의뢰
    Func 의뢰 는 매개 변수 가 없고 매개 변수 방법 이 있 으 며 반환 유형 을 제공 합 니 다.Func,Func...Func앞에서 말 했 듯 이 Action 의뢰 와 Func 의뢰 는 더 이상 설명 하지 않 아 도 바로 사용 할 수 있 습 니 다.이 점 을 제외 하고 익명 함수,lamda 표현 식 형식 도 지원 합 니 다.
    일반 함수 호출
    그 중에서 Student 는 입 참 형식 이 고 string 은 반환 매개 변수 형식 입 니 다.
    
    //       
      Func<Student, string> funcNew = FuncTestDelegate;
    
      /// <summary>
      /// string      
      /// </summary>
      /// <param name="student"></param>
      /// <returns></returns>
      public string FuncTestDelegate(Student student)
      {
       return student.StudentName;
      }
    우 리 는 Func 가 사용 을 의뢰 할 때 성명 없 이 바로 사용 할 수 있 는 것 을 볼 수 있다.
    익명 함수
    익명 함 수 는 키워드"delegate"로 설명 해 야 합 니 다.
    
    //Func      
       Func<int,int,string> func3 = delegate(int num1,int num2)
       {
        return $"Func:  :{num1+ num2}";
       };
       //  
       var result = func3(10, 20);
    lamda 표현 식
    
    //Func lamda       
       Func<string> func1 = () =>
       {
        return "Func:  ";
       };
       var result = func1();
    
       //Func lamda       
       string aa = "ABC";
       string bb = "DEF";
       Func<string, string, string> func2 = (p1, p2) =>
       {
        return $"Func:{p1},  {p2}";
       };
       result = func2(aa, bb);
    액 션 의뢰 인 스 턴 스
    액 션 의뢰 와 펑 크 의뢰 의 유일한 차 이 는 반환 유형 이 없고,다른 용법 은 모두 같 으 며,반환 유형 이 필요 없 을 때 는 직접 액 션 으로 의뢰 하 는 것 이다.
    
    //Action lamda   
       Action<string, string> action = (p1, p2) =>
       {
        Console.Write($"Action:{p1},  {p2}");
       };
       action("ABC", "DEF");
    작은 매듭
    본 고 는 사용자 정의 의뢰 와.Net 내 장 된 의뢰 Action 과 Func 의 기초 용법,그리고 그들 간 의 차이 점 을 소개 한다.전체적으로 보면 간단 하 다.조금 만 손 을 대 봐 도 자신 이 한 번 써 보면 그 매력 을 느 낄 수 있다.더 이상 말 하지 않 겠 습 니 다.자신 을 충족 시 키 는 동시에 더 많은 동료 들 의 생활 에 소금 을 넣 었 으 면 좋 겠 습 니 다.
    Asp.Net 의 Action 과 Func 의뢰 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 관련 Asp.Net 의 Action 과 Func 의뢰 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 바 랍 니 다!

    좋은 웹페이지 즐겨찾기