>백엔드 개발 >C#.Net 튜토리얼 >C# 대리자, 익명 메서드, Lambda, 일반 대리자, 표현식 트리 코드 예제를 검토해 보세요.

C# 대리자, 익명 메서드, Lambda, 일반 대리자, 표현식 트리 코드 예제를 검토해 보세요.

黄舟
黄舟원래의
2017-03-09 15:32:181987검색

C# 대리자, 익명 메서드, Lambda, 일반 대리자, 식 트리 코드 예제를 검토해 보세요.

이러한 내용은 이전 세대 프로그래머를 위한 진부한 표현일 뿐 전혀 새로운 것이 아닙니다. 새로운 세대의 프로그래머를 위한 것입니다. 과거에는 많은 신세대가 위임 및 표현 트리와 같은 응용 프로그램을 마스터하기 위해 오랜 연구, 이해 및 연습 과정을 거쳐야 했습니다. 오늘은 누구나 5분 안에 이 블로그를 읽을 수 있도록 간단하게 설명하려고 합니다.

첫 번째 순간: 위임

일부 교과서와 블로그에서는 위임에 관해 이야기할 때 이벤트를 언급합니다. 이벤트는 위임의 한 예이지만, 이해를 돕기 위해 오늘은 이벤트가 아닌 위임에 대해서만 이야기하겠습니다. 먼저 코드 조각:

아래 코드는 위임된 애플리케이션의 데모를 완료합니다. 커미션은 세 단계로 구성됩니다:

아아아아

01단계: 먼저 대리자를 사용하여 대리자를 정의합니다.

Step02: 위임자에 해당하는 메서드를 선언합니다.

03단계: 이 메서드를 사용하여 이 대리자를 인스턴스화합니다.

이 시점에서 대리인이 완료되어야 하며 대리인을 호출할 수 있습니다.

2분: 익명 방식

막판에도 이미 알고 계시겠지만, 의뢰 신청서를 작성하려면 세 단계를 거쳐야 합니다. 한 단계도 놓치지 않고 할 수는 없습니다. 큰 발걸음을 내디디면 조심하세요. 계란을 다치게 하세요. 하지만 마이크로소프트는 끈을 당기는 것을 두려워하지 않고 세 단계를 두 단계로 전환할 것을 고집합니다! 따라서 Microsoft는 위의 세 단계를 단순화하기 위해 익명 방법을 사용합니다. 익명 메서드에 대해 어떻게 생각하시나요? C#에서는 전혀 필요하지 않습니다. 어떤 사람들은 이를 구문 설탕이라고 독창적으로 명명했습니다.

아아아아

01단계: 먼저 위임을 사용하여 위임을 정의합니다.

02단계: 이 쓰기 방법을 사용하여 대리자에게 메서드를 할당합니다. 실제로 이 쓰기 방법은 익명 메서드입니다.

이때, 이것이 두 걸음 앞의 세 걸음이 아니라는 사실에 놀라시겠죠?

3분: 람다 표현식

원래 간단한 프로그램에 몇 가지 위임 키워드를 추가하면 코드가 갑자기 심오해지며 심오한 내용을 이해하는 사람이 적어지므로 이는 급여 인상을 위한 협상 카드로도 사용될 수 있습니다. 그러나 C#에 대한 Microsoft의 디자인 철학은 단순성과 사용 편의성입니다. Microsoft는 익명 메서드 대리자(int x, int y) { return x + y }를 단순화하기 위해 모든 수단을 시도했고 Lambda가 나타났습니다. 람다 표현식을 작성하는 여러 가지 방법을 살펴보겠습니다.

아아아아

방법 1: 대리자를 제거하고 ()와 {} 사이에 "=>"를 추가하기만 하면 됩니다.

방법 2: 방법 1에 따라 모든 매개변수 유형이 제거됩니다.

방법 3: 이를 수행하려면 더 철저하게 수행하고 {} 및 반환 키워드를 제거하세요.

이런 방법은 아무거나 써도 되지만 초보자에게는 귀찮을 뿐입니다. 가끔은 이런 글쓰기 방식도 보이고, 가끔은 저 글쓰기 방식도 보여서 사람들을 매료시킵니다. 만약 아무도 지도해 주지 않는다면 정말 혼란스러울 것입니다. 그리고 어렵다.

4분: 일반 대의원

.net 버전은 업그레이드되지 않기 때문에 새 버전은 이전 버전과 달라야 합니다. 그렇지 않으면 Microsoft 엔지니어가 어떻게 상사에게 보고할 수 있습니까? 그래서 Microsoft는 다시 새로운 것을 준비하고 있습니다.

아아아아

익명 메서드든 Lambda 식이든 대리자 적용을 완료하는 데는 두 단계가 있습니다. 하나는 대리자를 정의하는 것이고, 다른 하나는 메서드를 사용하여 대리자를 인스턴스화하는 것입니다. Microsoft는 이 두 단계를 하나의 단계로 결합했습니다. Func를 사용하여 대리자 정의를 단순화합니다.

이 시점에서 대리자의 적용은 Func cAdd3 = (x, y) => 여기서 Func는 소위 일반 대리자입니다.

5분: 표현식 트리

사실 표현식 트리는 위임과 아무 관련이 없습니다. 꼭 관련되어야 한다면 표현식 트리는 위임을 저장하는 컨테이너라고 가정하겠습니다. 좀 더 전문적으로 얘기하자면 표현식 트리는 람다 표현식에 접근하기 위한 데이터 구조다. Lambda 표현식을 사용할 때는 표현식에서 직접 가져오고 Compile()을 직접 사용하세요. 다음 코드:

public partial class WebForm3 : System.Web.UI.Page
{
    //step01:首先用delegate定义一个委托 。
    public delegate int CalculatorAdd(int x, int y);

    protected void Page_Load(object sender, EventArgs e)
    {
        //step03:用这个方法来实例化这个委托。
        CalculatorAdd cAdd = new CalculatorAdd(Add);
        //int result = cAdd(5, 6);
        int result = cAdd.Invoke(5,6);
    }
    // step02:声明一个方法来对应委托。
    public int Add(int x, int y)
    {
        return x + y;
    }
}

아주 피상적으로만 다루긴 했지만 적어도 모든 사람이 대리자, 익명 메서드, Lambda, 일반 대리자 및 표현식 트리에 대한 다른 기사를 검토할 수 있게 해주었습니다.


위 내용은 C# 대리자, 익명 메서드, Lambda, 일반 대리자, 표현식 트리 코드 예제를 검토해 보세요.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.