250210 TIL

박소희·2025년 2월 10일

Unity_7기

목록 보기
23/94

하루종일 버그 수정만했다..
코드를 작성할 때 테스트를 하면서 했어야 했는데, 다른 스크립트를 건들면 안되다 보니 하기 어려웠다.

TextRPG 피드백

  • 클래스를 초기화하는 기능은 GameManager가 아닌 각 클래스에 Initialize 등으로 위임하는 것이 객체지향적이다.
  • static은 싱글톤 혹은 정적 유틸리티와 같은 것들을 만들 때 사용하는 것이 좋다.

델리게이트를 사용한 점이 좋다고 하셨는데, 사용한지도 몰랐다...

델리게이트 복습

Delegate: 행동을 위임하는 패턴. 특정 객체가 수행해야 할 동작을 다른 객체에 위임'

  • 메서드를 참조하고 실행하는 타입
  • 메서드를 변수처럼 다룰 수 있도록 도와준다.
    -> 객체 간 결합도를 낮추고, 유연한 코드 구성 가능

활용

  • 익명 메서드: 직접 메서드를 만들지 않고, 즉시 실행할 코드를 전달할 수 있음.
MyDelegate del = delegate(string msg){
	Console.WriteLine("메서드: " + msg);
};
del("Hello");
  • 람다 표현식
MyDelegate del = (msg) => Console.Write(msg);
del("msg");
  • 콜백 함수: 특정 동작이 완료된 후 실행할 함수를 미리 등록
delegate void CallBack(int result);

class Program
{
	static void DoWork(int a, int b CallBack callback)
    {
    	int sum = a + b;
        callback(sum);
    }
    
    static void Print(int result)
    {
    	Console.WriteLine(result);
    }
    
    static void Main()
    {
    	DoWork(3, 5, Print);
    }
}

0개의 댓글