본문 바로가기
유니티 공부/C# 문법

C# 문법 - Event

by 코딩하는 돼징 2023. 4. 18.
반응형

Delegate 단점

설계적인 부분에서 볼때 Delegate객체를 접근할 수 있으면 호출을 아무나 할 수 있다는 단점이 있다. 이러한 단점을 보완하기위해 Delegate을 mapping하는 Event가 있다.


1. Publisher

01 event처리를 위한 delegate 선언

public delegate void SampleEventHandler(object sender, SampleEventArgs e);
public delegate void OnInputKey();

02 event 선언

public event SampleEventHandler SampleEvent;
public event OnInputKey InputKey;

 

OnInputKey -> Delegate

InputKey -> Event name


03 event 테스트 선언

public void Update()
{
	if (Console.KeyAvailable == false)
		return;
	
	ConsoleKeyInfo info = Console.ReadKey();
	if(info.Key == ConsoleKey.A)
	{
		// 이벤트가 발생
		InputKey();
	}
}

 


2. Subscriber

01 구독자의 이벤트가 발생했을때 실행할 함수

static void OnInputTest()
{
    Console.WriteLine("Input Received");
}

02 구독 신청(이벤트 연결)

inputManager inputManager = new inputManager();
inputManager.InputKey += OnInputTest;

03 구독자에게 알림

while(true)
{
    inputManager.Update();
}

 

 

 

 

본 게시글은 MMORPG Part1을 수강하고 정리한 글입니다.

https://www.inflearn.com/course/%EC%9C%A0%EB%8B%88%ED%8B%B0-mmorpg-%EA%B0%9C%EB%B0%9C-part1/dashboard

반응형

'유니티 공부 > C# 문법' 카테고리의 다른 글

C# 문법 - exception  (0) 2023.04.19
C# 문법 - Lambda, Func, Action  (0) 2023.04.19
C# 문법 - Delegate(대리자)  (0) 2023.04.16
C# 문법 - property(프로퍼티)  (0) 2023.04.16
C# 문법 - virtual vs abstract vs interface  (0) 2023.04.16

댓글