대리자를 사용하여 원 넓이를 구하는 함수를 대신 호출하기
대리자로 메서드를 대신 호출하는 내용을 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