C# 중급
🧱 1. Sealed
sealed class MyClass {}
- sealed는 상속 금지 키워드
 - 이 클래스를 상속해서 다른 클래스를 만들 수 없음
 - Unity에서 MonoBehaviour를 상속한 클래스를 상속하지 못하게 막을 때 유용
 
🧩 2. Delegate와 Event
✅ Delegate란?
메서드를 변수처럼 저장하고 실행할 수 있는 타입 (함수 포인터 느낌)
delegate void MyDelegate(string msg);
MyDelegate del = ShowMsg;
del("안녕!");
✅ Event란?
Delegate를 외부에서 Invoke 못 하게 감싸는 키워드
public event MyDelegate onJump;
onJump += Jump;
onJump?.Invoke();  // 외부에서는 Invoke 불가
항목DelegateEvent
 
| 호출 가능 | O | ❌ | 
| += 가능 | O | O | 
| -= 가능 | O | O | 
| 보호 수준 | 약함 | 강함 | 
🎮 3. UnityEvent
public UnityEvent onClick;
onClick?.Invoke();
- Unity의 에디터 연동이 가능한 이벤트 클래스
 - UnityAction 타입의 함수를 AddListener()로 연결
 - 직렬화 가능 → Inspector에서 함수 드래그 앤 드롭 연결 가능
 
🔁 4. EventHandler
event EventHandler SomethingHappened;
SomethingHappened?.Invoke(this, EventArgs.Empty);
- .NET 표준 이벤트 패턴
 - sender와 event 정보를 함께 넘김
 - Unity보다 WinForm, WPF 등에서 많이 사용됨
 
🧠 5. 익명 함수와 Lambda
Action sayHi = () => Debug.Log("Hi");
sayHi();
Func<int, int> square = x => x * x;
- 익명 함수 (delegate() {})의 축약형
 - 간결한 콜백이나 조건 검사에 최적화
 - delegate 없이도 사용 가능하지만 내부적으로는 delegate임
 
🔍 6. Func와 Predicate
✅ Func
Func<int, int> square = x => x * x;
- T → TResult 구조
 - 결과를 반환하는 메서드 저장용
 
✅ Predicate
Predicate<int> isEven = x => x % 2 == 0;
- T → bool 구조
 - 조건 검사용 delegate
 
타입목적시그니처
 
| Func<T, TResult> | 연산, 계산 | int → int | 
| Predicate<T> | 조건 판별 | int → bool | 
⚙️ 7. Action
Action log = () => Debug.Log("로그!");
Action<int> logValue = x => Debug.Log(x);
- void 반환형 delegate
 - 리턴값 없는 콜백 처리에 최적
 - UnityAction과 유사하지만, UnityEvent와 연결 시에는 UnityAction 사용
 
🔗 전체 관계도 요약
             [ delegate ]
                     ↓ 
   [ Action ]           [ Func / Predicate ] 
         ↓                              ↓
[ UnityAction ]       [ EventHandler ] 
         ↓
[ UnityEvent ]
✅ 마무리 요약표
항목매개변수반환설명
| delegate | 자유 | 자유 | 기본 함수 참조 | 
| event | delegate 기반 | - | 캡슐화된 이벤트 | 
| UnityEvent | UnityAction | void | Inspector 연결 가능 | 
| Action<T> | T | void | 리턴 없는 실행 | 
| Func<T, TResult> | T | TResult | 리턴 있는 함수 | 
| Predicate<T> | T | bool | 조건 검사 전용 | 
'멋사교육' 카테고리의 다른 글
| 멋쟁이사자처럼부트캠프 유니티 게임 개발 5기 62일차 (5) | 2025.08.18 | 
|---|---|
| 멋쟁이사자처럼부트캠프 유니티 게임 개발 5기 52일차 (1) | 2025.08.01 | 
| 멋쟁이사자처럼부트캠프 유니티 게임 개발 5기 51일차 (0) | 2025.07.30 | 
| 멋쟁이사자처럼부트캠프 유니티 게임 개발 5기 21일차 (0) | 2025.06.13 | 
| 멋쟁이사자처럼부트캠프 유니티 게임 개발 5기 11일차 (2) | 2025.05.28 |