강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

김민주님의 프로필 이미지
김민주

작성한 질문수

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문

Delegate 질문좀할게요 ㅠ

작성

·

167

0

계속 돌려봐도 이해가안되는부분이 그냥 함수 안에 함수를 넣으면 되는데 왜 굳이 매개변수를 통해서 받아오는지 이해가 안됩니다.

답변 1

1

Rookiss님의 프로필 이미지
Rookiss
지식공유자

여러가지 장점이 있습니다.

1) 함수 호출 시점 관련

함수 안에 함수를 넣으면 '당장' 해당 함수를 호출하는 것입니다.
어떤 기능을 '당장' 호출해야 한다면 그게 맞을 수도 있지만,
상황에 따라, 예를 들어 5초 후에 특정 함수를 호출해야 한다면 어떨까요?

... 5초 대기
함수호출();

이렇게 한다면 5초 대기할 동안 프로그램이 다른 작업은 할 수 없겠죠.
함수를 인자로 받아서 변수처럼 사용할 경우, 원할 때 해당 함수를 호출해주면 그만입니다.

2) 함수의 다양화 관련

꼭 특정 함수를 호출하는게 아니라, 상황에 따라 어떤 함수를 호출할지를 외부에서 정해줄 수 있다면
다양하게 응용이 가능해질 겁니다.

사실 이 부분은 언젠가 예제로 보고 스스로 필요한 상황이 되어야 더 와닿습니다.
지금은 이해가 안 간다면 그냥 넘어가셔도 무방합니다.

김민주님의 프로필 이미지
김민주

작성한 질문수

질문하기