델리게이트를 함수 포인터처럼 응용

한번만 실행되는 코드들이 있을 경우 델리게이트를 사용해서 한번만 호출될 함수계속 사용될 함수를 설정한다.

한번만 사용될 코드가, 자주 호출 되는 함수에 같이 포함된 것을 제거하고 나면 기분은 깔끔해짐.

c# delegate
( C++ 함수 포인터처럼 )
 
namespace DelegateTest
{
  // 함수 포인터로 사용할 델리게이트
  private delegate void methodEveryTimeCalled();
 
  //한번만 실행하는 함수. 이 함수에서 다음부터 계속 호출될 함수를 설정한다.
  private void onetimeCallMethod() {
    methodEveryTimeCalled = new methodEveryTimeCalled( this.realEveryCallMethod );
  }
  // onetimeCallMethod() 이후부터는 이 함수가 계속 실행된다.
  private void realEveryCallMethod() {  }
 
  void Awake() {
    methodEveryTimeCalled = new methodEveryTimeCalled( this.onetimeCallMethod );
  }
 
  void Update() {
    methodEveryTimeCalled();
  }
}