C# 대리자, 익명 메서드, Lambda, 일반 대리자, 표현식 트리 코드 예제를 검토해 보세요.
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
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











C++에는 Lambda 표현식을 사용하여 예외를 처리하는 두 가지 방법이 있습니다. 즉, try-catch 블록을 사용하여 예외를 포착하고, catch 블록에서 예외를 처리하거나 다시 발생시킵니다. std::function 유형의 래퍼 함수를 사용하면 try_emplace 메서드가 Lambda 표현식에서 예외를 포착할 수 있습니다.

C++에서 클로저는 외부 변수에 액세스할 수 있는 람다 식입니다. 클로저를 생성하려면 람다 표현식에서 외부 변수를 캡처하세요. 클로저는 재사용성, 정보 숨기기, 지연 평가와 같은 이점을 제공합니다. 이는 클로저가 외부 변수가 파괴되더라도 여전히 접근할 수 있는 이벤트 핸들러와 같은 실제 상황에서 유용합니다.

C++ 다중 스레드 프로그래밍에서 람다 식의 장점에는 단순성, 유연성, 매개 변수 전달 용이성 및 병렬성이 포함됩니다. 실제 사례: 람다 식을 사용하여 다중 스레드를 만들고 다른 스레드에서 스레드 ID를 인쇄하여 이 방법의 단순성과 사용 용이성을 보여줍니다.

C++ Lambda 표현식은 함수 범위 변수를 저장하고 함수에 액세스할 수 있도록 하는 클로저를 지원합니다. 구문은 [캡처 목록](매개변수)->return-type{function-body}입니다. 캡처 목록은 캡처할 변수를 정의합니다. [=]를 사용하여 모든 지역 변수를 값으로 캡처하고, [&]를 사용하여 모든 지역 변수를 참조로 캡처하거나, [변수1, 변수2,...]를 사용하여 특정 변수를 캡처할 수 있습니다. 람다 표현식은 캡처된 변수에만 액세스할 수 있지만 원래 값을 수정할 수는 없습니다.

C++에서 외부 변수의 람다 식을 캡처하는 방법에는 세 가지가 있습니다. 값으로 캡처: 변수의 복사본을 만듭니다. 참조로 캡처: 변수 참조를 가져옵니다. 값 및 참조로 동시에 캡처: 값 또는 참조로 여러 변수를 캡처할 수 있습니다.

C++에서는 Lambda 표현식을 함수 매개 변수로 사용하여 콜백 함수의 유연성을 얻을 수 있습니다. 구체적으로 설명하면 다음과 같습니다. 매개변수 전달: std::function을 통해 Lambda 표현식을 래핑하고 이를 함수 포인터 형식으로 함수에 전달합니다. 반환 값 처리: std::function을 사용하여 콜백 함수 포인터를 선언할 때 반환 값 유형을 지정합니다. 실제 사례: GUI 이벤트 처리에서 콜백을 최적화하고, 불필요한 객체나 함수 포인터 생성을 방지하고, 코드 단순성과 유지 관리성을 향상시킵니다.

C++ 람다 표현식을 사용하여 지연 평가를 수행하는 방법은 무엇입니까? 지연 평가 함수 개체를 만들려면 람다 식을 사용하세요. 지연된 계산은 필요할 때까지 실행을 연기합니다. 필요한 경우에만 결과를 계산하여 성능을 향상시킵니다.

C++ 람다 표현식 최적화를 위한 성능 팁은 다음과 같습니다. 불필요한 람다 객체 생성 방지 std::bind를 통해 가장 작은 객체를 명시적으로 캡처 std::move를 사용하여 캡처된 변수를 이동하여 복사 방지 람다 본문을 최적화하여 불필요한 메모리 할당, 반복 계산 및 전역 변수 액세스
