익명 메소드

이벤트: 객체에 일어난 사건 알리기

람다식

람다식, 너는 어디에서 왔니?

private delegate void SecondElapsedDelegate();
// void() 타입의 함수만 보관할 수 있음.
// 타입을 정의

public SecondElapsedDelegate OnSecondElapsed;
// SecondElapsedDelegate 타입의 객체
OnSecondElapsed를 생성

// OnSecondElapsed에는 void() 타입의 함수를 넣을 수 있음
void Foo();
OnSecondElapsed += Foo;

delegate void EventHandler(string message);
// void(string) 타입의 함수를 보관할 수 있는 대리자
EventHandler 타입 정의

---
EvnetHandler eventHandler;
eventHandler += Foo; // 오류
// Foo 타입은 void()
// EventHandler 대리자 타입이 담을 수 있는 함수는 void(string).
---

public SecondElapsedDelegate : System.
MulticastDelegate
{

}

delegate int Foo();
// int() 타입의 함수만 넣을 수 있음

delegate float Boo(int, double);
// float

이벤트는 외부에서 함부로 호출할 수 없다.
대리자는 그냥 함수만 보관하는 타입이기 때문에 외부에서도 호출한든 말든 상관없다.

대리자

이벤트