카테고리 없음

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가 달려있다면 다른 스크립트에서 메서드를 추가, 빼기는 가능하지만, 초기화, 실행은 불가능해진다

 

콜백 메서드

  • 비동기 메서드로 인해 메서드의 실행 순서를 확실하게 하지 못할 때 실행 순서를 조정하기 위해 사용.
  • 비동기 메서드 실행 이후 실행하고 싶은 메서드를 인수로 보내면, 비동기 메서드의 비즈니스 로직 처리 이후 해당 메서드 실행