Learning
When: 1학년 6월 8일
How:
개인 프로젝트를 만들다가 총알을 여러 개 사용할 일이 생겼는데, 자주 사용하던 배열을 이용한 풀링은 여러 가지 오브젝트를 사용하기 어려워서 딕셔너리에 대해 공부하게 되었습니다.
Understanding:
일단 '딕셔너리는 인덱스 대신 제가 정한 키를 사용하는 배열'이라고 미리 머리를 좀 정리하고 설명을 들으면 편할 듯합니다.
- 기본 구조
Dictionary<키 타입, 값 타입> 딕셔너리 이름 = new Dictionary<>();
//예시)
Dictionary<int, GameObject> bulletPools = new Dictionary<>();
이런 식으로 딕셔너리를 생성할 수 있습니다.
- 사용법
| 기능 | 예시 코드 | 설명 |
| 추가 | bulletPools.Add(i, basicBullet); | 딕셔너리에 값 추가하기 |
| 꺼내기 | GameObject bullet = bulletPools[1]; | 값 가져오기 (배열이랑 키 빼고 똑같음) |
| 수정 | bulletPools[1] = superBullet; | 덮어쓰기 |
| 삭제 | bulletPools.Remove(2); | 키 삭제하기 |
| 확인 | bulletPools.ContainsKey(1); | 해당 키가 있는지 확인하기 |
- 배열과 차이점
딕셔너리는 아까 말씀드렸듯 배열과 상당히 유사한데, 원하는 키를 사용해 값을 찾을 수 있고, 크기도 자동으로 늘어나기 때문에 유연하게 사용할 수 있다는 차이점도 존재합니다.
단, 배열처럼 순서가 유지되는 건 아니라는 점은 기억해 두는 게 좋습니다. 딕셔너리는 아까 말씀드렸듯 배열과 상당히 유사한데, 원하는 키를 사용해 값을 찾을 수 있고 크기가 계속 변한다는 차이점도 존재합니다.
Result: 딕셔너리는 키가 인덱스가 아닌 배열이라고 생각해도 되고, 종류가 다양한 오브젝트들을 담는 배열처럼 사용할 수 있습니다.
'C#' 카테고리의 다른 글
| [C#] as 키워드 (0) | 2025.06.19 |
|---|---|
| [C#] try~catch 문 (0) | 2025.06.12 |
| [C#] 일반화 프로그래밍 (Generic 형식) (0) | 2025.06.07 |
| [C#] Null값 받을 수 있는 변수, nullable 변수 (0) | 2025.05.31 |
| [C#] 인터페이스와 추상 클래스 (0) | 2025.05.15 |