12월 2일 월요일 본 캠프 개발 일지
📌
학습 내용
1. Find 메서드
2. 델리게이트와 이벤트의 차이
1. Find 메서드
리스트 데이터에서 ID에 맞는 데이터 찾는다고 무한 For문 돌리던 바보 같은 날들아 안녕. List 클래스에서 제공하는 미-친 메서드를 발견했다.
✅ Find 메서드?
리스트 내에서 특정 조건에 맞는 요소를 검색할 때 사용하는 메서드이다. 특정 조건을 만족하는 첫 번쨰 요소를 반환하고, 조건은 델리게이트 또는 람다식을 통해 정의한다.
public T Find(Predicate<T> match);
T: 리스트의 요소 타입
Predicate<T>: 조건을 나타내는 델리게이트
✅ UGS에서 활용하기
USG에서 생성된 데이터 클래스를 보면, 데이터를 리스트로 반환해주는 메서드가 존재한다.
GetList()
해당 클래스를 상속받아서 저 함수를 사용해도 되지만, 일단 확실히 이해하기 위해 리스트 데이터를 던전데이터 리스트로 반환해주는 함수를 만들었다.
public List<DungeonData> GetDungeon()
{
return DungeonDataList;
}
그리고 이 던전 데이터 리스트가 담긴 객체에서 Find로 아이디에 맞는 데이터를 찾아주는 함수를 만들면 끗.
public DungeonData GetDungeonid(int DungeonId)
{
return DungeonDataList.Find(x => x.ID == DungeonId);
}
이때 Find의 매개변수에서 x는 던전 데이터이고, 던전 데이터의 아이디가 던전 아이디의 값과 같은 데이터를 반환해주게 된다!
2. 델리게이트와 이벤트
좀좀따리 기술면접도 준비하고 있다. 가볍게 델리게이트와 이벤트의 차이를 알아보자.
✅ 델리게이트?
특정 시점에서 호출할 메서드를 참조하는 포인터 역할을 한다. 델리게이트 타입을 정의한 뒤, 이 타입의 변수를 통해 메서드를 호출할 수 있다.
✅ 이벤트?
델리게이트를 기반으로 발생 시점을 외부에 알리는 방식을 제공한다.
✅ 차이점 한 눈에 보기!
역할 | 메서드 참조 포인터 역할 | 이벤트 발생 시 외부 메서드 호출 |
직접 호출 | 델리게이트 인스턴스는 호출 가능 | 이벤트는 Invoke를 통해 호출해야 하며, 외부 호출 불가 |
사용 목적 | 일반적인 메서드 참조 또는 실행 | 특정 이벤트 발생 시 알림 및 응답 관리 |
보안 | 외부에서 메서드 추가 및 삭제 가능 | 외부에서 직접 호출 불가, 메서드 구독/해제만 가능 |
베이직반에서 했던 델리게이트 특강 다시 보면서 두 번 이해해보면 좋을 것 같다.
프로젝트가 너무 순조로워서 마음이 풀어진ㄷ ㅏ..