사용자 도구

사이트 도구


language:csharp:함수포인터

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

다음 판
이전 판
language:csharp:함수포인터 [2013/01/24 14:32] – 바깥 편집기 127.0.0.1language:csharp:함수포인터 [2024/04/23 22:44] (현재) – 바깥 편집 127.0.0.1
줄 1: 줄 1:
 +델리게이트를 함수 포인터처럼 응용
  
 +한번만 실행되는 코드들이 있을 경우 델리게이트를 사용해서 **한번만 호출될 함수**와 **계속 사용될 함수**를 설정한다.
 +
 +한번만 사용될 코드가, 자주 호출 되는 함수에 같이 포함된 것을 제거하고 나면 기분은 깔끔해짐.
 +
 +<code csharp>
 +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();
 +  }
 +}
 +</code>