카테고리 없음
C# 고급 문법
NaZZU
2025. 3. 19. 22:19
람다식
- 일회성 메서드로 익명 메서드 라고도 함
- (num) => {Console.WriteLine(num); }; 람다식의 기본 구성
델리게이트
- 메서드를 저장하는 변수
- += 로 델리게이트 안에 메서드를 저장할 수 있음
- -= 메서드명 으로 델리게이트 안의 특정 메서드를 제거할 수 있음
- = 를 사용하면 델리게이트를 모두 비운 뒤 해당 메서드를 저장함
using System;
using System.Collections.Generic;
using System.Text;
namespace Baekjoon4383
{
internal class Program
{
public delegate void MyDele(int func);
static public MyDele dele;
static void Main(string[] args)
{
dele += Function;
dele(2);
}
static void Function(int num)
{
Console.WriteLine(num);
}
}
}
- 델리게이트 인스턴스 멤버에 넣을 수 있는 메서드의 반환형, 매개변수의 자료형, 개수는 모두 동일해야 한다.
- 델리게이트 선언할 때 정한 메서드만 넣어야 한다
- Invoke();
- 델리게이트에 ? 을 붙인 후 사용하면 델리게이트가 null인지 검사한 뒤 null이 아닌 경우에만 매개변수는 delegate에 넘긴뒤 실행시켜줌.
- dele?.Invoke();
액션
- 사스템에서 기본적으로 제공하는 델리게이트
- 반환값이 없으며, 매개변수 또한 없다.
- 안의 메서드들을 실행시키는 역할
이벤트
- 델리게이트의 앞에 달 수 있음.
- event가 달려있다면 다른 스크립트에서 메서드를 추가, 빼기는 가능하지만, 초기화, 실행은 불가능해진다
콜백 메서드
- 비동기 메서드로 인해 메서드의 실행 순서를 확실하게 하지 못할 때 실행 순서를 조정하기 위해 사용.
- 비동기 메서드 실행 이후 실행하고 싶은 메서드를 인수로 보내면, 비동기 메서드의 비즈니스 로직 처리 이후 해당 메서드 실행