본문 바로가기

[내배캠] 본 캠프 개발 학습/매일매일 쓰는 TIL

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를 통해 호출해야 하며, 외부 호출 불가
사용 목적 일반적인 메서드 참조 또는 실행 특정 이벤트 발생 시 알림 및 응답 관리
보안 외부에서 메서드 추가 및 삭제 가능 외부에서 직접 호출 불가, 메서드 구독/해제만 가능

 

베이직반에서 했던 델리게이트 특강 다시 보면서 두 번 이해해보면 좋을 것 같다. 

 



프로젝트가 너무 순조로워서 마음이 풀어진ㄷ ㅏ..