그린티라떼
개발공간
그린티라떼
전체 방문자
오늘
어제
  • 분류 전체보기 (26)
    • unity (6)
      • 개발 (4)
      • iTween (0)
      • error (2)
    • 게임서버 (5)
    • C++ (7)
      • 문법 (5)
      • 알고리즘 (2)
    • C# (5)
    • CS지식 (1)
    • 기타 (2)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 제네릭
  • 함수 호출 오버헤드
  • 다중상속의 문제점
  • 데이터타입
  • Gradle build failed
  • Functions
  • unity
  • 일반화
  • 정규 표현식
  • Container
  • delegate chain
  • Dynamic
  • inline 함수
  • 일반화컬렉션
  • object
  • c#
  • 형식매개변수의 제약
  • 유니티
  • 함수호출
  • cout 스트림 버퍼
  • regex
  • var
  • Delegate
  • interface
  • cs지식
  • C++
  • property
  • 컨테이너
  • 유니티 빌드 에러
  • 메모리영역

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
그린티라떼

개발공간

C#

C#) delegate 대리자

2022. 1. 14. 01:20

코드를 작성할 때 직관적이고 순차적으로 작성을 한다.

하지만 상대방에게 요청을 보내야 하는 상황이 올 수도 있다. (이때 delegate 사용)

delegate int OnClicked();

static void AnyEvent(OnClicked clickedFunction) //clickedFunction (연락처)
{
    clickedFunction(); //함수 호출 (연락을 달라고)
}

static int Test1()
{
    Console.WriteLine("test1");
    return 0;
}

static int Test2()
{
    Console.WriteLine("test2");
    return 0;
}

static void Main(string[] args)
{
    AnyEvent(Test1);
}

 1. delegate int OnClicked();

  • delegate 형식은 형식인데, 함수 자체를 인자로 넘겨주는 형식이다.
  • 반환 : int, 입력 : void
  • delegate 이름 : Onclicked

2. static void AnyEveny(Onclicked clickedFunction) 

(아래와 같은 상황이 있다고 생각해보자.)

1. 사장님과 연락을 하고 싶어서

2. 비서에게 연락처를 알려주고

3. 연결이 가능하다면 연락을 달라고 한다.

  • 함수 자체를 인자로 넘겨준다.(연락처)
  • clickedFunction(); <-함수 호출 (연락을 달라고 한다.)

3. static int Test1() / static int Test2()

 호출되길 바라는 함수

 

4. AnyEvent(Test1);

 내부적으로 파고 들어가면

OnClicked clicked = new OnClicked(Test1); //(객체 생성)
clicked(); //or AnyEvent(clicked); (호출)

이런 식으로 객체를 생성하면 델리게이트를 체이닝을 할 수 있다.

 

5. delegate chain

하나의 델리게이트 안에 여러 개의 함수를 연결하여 연쇄적으로 호출하는 방식 

clicked -= Test1;  //해제
clicked += Test2;  //추가

 

 

 

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

C#) property  (0) 2022.01.13
C#) interface 인터페이스  (1) 2022.01.13
C#) Generic 일반화  (0) 2022.01.13
C#) var & dynamic & object  (0) 2022.01.13
    'C#' 카테고리의 다른 글
    • C#) property
    • C#) interface 인터페이스
    • C#) Generic 일반화
    • C#) var & dynamic & object
    그린티라떼
    그린티라떼

    티스토리툴바