실행 결과
안녕하세요. 반갑습니다. 또 만나요. 8
Print 클래스에는 Show() 메서드가 하나 준비되어 있습니다. ①은 Show() 메서드를 사용하는 기본 방식이며, ②처럼 새로운 PrintDelegate 대리자를 만들어 이곳에 담아 대신 호출하는 방식도 있습니다. 좀 더 나아가서 ③과 ④처럼 delegate 키워드로 이미 만들어 놓은 함수가 아닌 해당 시점에 이름이 없는 무명 메서드를 만들고 호출해서 사용할 수도 있습니다.
사실 필자도 무명 메서드는 람다 식이 등장하면서 거의 사용하지 않는데, 앞 예제 정도만 학습해 두세요.
다음 코드를 보면 대리자에 특정 메서드를 무명 메서드가 아닌 람다 식으로 바로 만들어 사용합니다. 이처럼 대리자에는 직접 메서드를 적용하든지, 무명 메서드 아니면 람다 식을 사용하든지 정할 수 있습니다.
> delegate int IntParameterAndIntReturnDelegate(int x); > IntParameterAndIntReturnDelegate pow = (x) => x * x; > pow(3) 9