| 니앙팽이 - 이벤트(C#) | 3 | 델리게이트 액션 (Action)

2023. 2. 3. 18:42·Language/C#
이벤트지향

💡 3. Event Action & Func

📄 1. Action 대리자

리턴값이없는 프로스저를 캡슐화 하는대리자를 정의한다.

즉, 리턴값이 없는 함수를 대리자 사용하고 싶으면? Action Type을 사용하면 된다.

1). Action 대리자 종류

① Action 대리자는 다음 종류가 있다.

  1. 리턴도, 매개변수도 없는 대리자
    • Action _DelegateInstance_
  2. 매개변수 하나정도 있는 대리자
    • Action<T type> _DelegateInstance_
  3. 매개변수 N개 있는 대리자
    • Action<T1, T2, .... T16> _DelegateInstance_

📄2. Action

1). Action 사용 안했을때,

public delegate void Del();

public static HelloWolrd() {
  Console.WriteLine("Hello World!");
}

public static void Main() {
  Del delInstance = HelloWorld;
  delInstance();
}

2). Action 사용했을떄.

public static HelloWolrd() {
  Console.WriteLine("Hello World!");
}

public static void Main() {
  Action delInstance = HelloWorld;
  delInstance();
}

3). 익명함수까지 사용했을때.

public static void Main() {
  Action delInstance = () => Console.WriteLine("Hello World!");
  delInstance();
}

📄 3. Func 대리자

리턴값이 있는 프로스저를 캡슐화 하는대리자를 정의한다.

즉, 리턴값이 있는 함수를 대리자 사용하고 싶으면? Func Type을 사용하면 된다.

1). Func 대리자 종류

① Func 대리자는 다음 종류가 있다.

  1. 매개변수가 없는 대리자
    • Func<out TResult> _DelegateInstance_
  2. 매개변수 하나정도 있는 대리자
    • Action<T type, out TResult> _DelegateInstance_
  3. 매개변수 N개 있는 대리자
    • Action<T1, T2, .... T16, out TResult> _DelegateInstance_

📄 4. Func

1). Func 사용 안했을때,

public delegate string Del();

public static string HelloWolrd() {
  return "Hello World!";
}

public static void Main() {
  Del delInstance = HelloWorld;
  Console.WriteLine(delInstance);
}

2). Action 사용했을떄.

public static string HelloWolrd() {
  return "Hello World!";
}

public static void Main() {
  Func<string> delInstance = HelloWorld;
  Console.WriteLine(delInstance);
}

3). 익명함수까지 사용했을때.

public static void Main() {
  Func<string> delInstance = () => {return "Hello World!";}
  Console.WriteLine(delInstance);
}
저작자표시

'Language > C#' 카테고리의 다른 글

| 니앙팽이 - 이벤트(C#) | 5 | UnityEvent  (0) 2023.04.14
| 니앙팽이 - 이벤트(C#) | 4 | Eventhandler & Event & EventArgs  (0) 2023.02.09
| 니앙팽이 - 이벤트(C#) | 2 | 델리게이트(Delegate)  (0) 2023.02.03
| 니앙팽이 - 이벤트(C#) | 1 | 가상함수 & 바인딩  (0) 2023.02.03
| 니앙팽이 - 이벤트(C#) | 0 | 이벤트 지향 개발  (0) 2023.02.03
'Language/C#' 카테고리의 다른 글
  • | 니앙팽이 - 이벤트(C#) | 5 | UnityEvent
  • | 니앙팽이 - 이벤트(C#) | 4 | Eventhandler & Event & EventArgs
  • | 니앙팽이 - 이벤트(C#) | 2 | 델리게이트(Delegate)
  • | 니앙팽이 - 이벤트(C#) | 1 | 가상함수 & 바인딩
니앙팽이
니앙팽이
  • 니앙팽이
    니앙팽이 블로그
    니앙팽이
  • 전체
    오늘
    어제
    • 분류 전체보기 (126)
      • 그림그리기 (7)
      • 음악 (4)
        • FL Studio & MIDI (2)
        • 자작곡 (2)
      • 게임 (7)
        • 모바일 (0)
        • 스팀 (0)
        • 닌텐도 (0)
        • 개발 (7)
      • CS (44)
        • SW 공학 (27)
        • DB (7)
        • OS (9)
        • 네트워크 (1)
      • 팁 (9)
      • Language (21)
        • C# (8)
        • C&C++ (3)
        • 파이썬 메모 (3)
        • Javascript (7)
      • PS (0)
        • 알고리즘 (24)
        • 자료구조 (8)
        • 수학 (1)
        • 선형대수 (0)
        • 오토마타 (1)
        • 이산수학 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    프로세스
    알고리즘
    객체지향개발
    KAKAO
    파이썬
    노마드 코더
    clip studio paint
    Stack
    그림 연습
    unity
    따라그리기
    Javascript
    자료구조
    c#
    가비지 콜렉터
    연결리스트
    유니티
    프로그래머스
    클립 스튜디오
    디자인패턴
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
니앙팽이
| 니앙팽이 - 이벤트(C#) | 3 | 델리게이트 액션 (Action)
상단으로

티스토리툴바