더북(TheBook)

대리자를 사용하여 원 넓이를 구하는 함수를 대신 호출하기

대리자로 메서드를 대신 호출하는 내용을 C# 인터렉티브에서 다음 순서대로 한 번 더 실행해 보세요. 프로젝트 기반 소스는 DelegateGetArea.cs 파일입니다.

 

1.   매개변수가 int 형이고 반환값이 double 형인 GetArea() 메서드가 다음과 같이 있습니다.

> double GetArea(int r) => 3.14 * r * r;

2.   GetArea() 메서드를 대신 호출할 수 있는 함수 포인터 역할을 하는 GetAreaPointer 대리자는 다음과 같이 만들 수 있습니다.

> delegate double GetAreaPointer(int r);

3.   동일한 매개변수와 반환값을 갖는 메서드를 대리자 개체에 담습니다.

> GetAreaPointer pointer = GetArea;

4.   대리자 개체는 Invoke() 메서드 또는 대리자 개체 자체로 호출해서 사용됩니다.

> pointer.Invoke(10)
314
> pointer(10)
314
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.