일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 유니티 GUI
- 팀 프로젝트
- 모작
- input system
- Oculus
- 오큘러스
- 개발
- 길건너 친구들
- HAPTIC
- 포트폴리오
- 멀티플레이
- 연습
- 드래곤 플라이트 모작
- ChatGPT
- XR
- 개발일지
- 유니티 Json 데이터 연동
- OVR
- 팀프로젝트
- 가상현실
- 유니티 UI
- 유니티
- VR
- meta
- 앱 배포
- 드래곤 플라이트
- CGV
- Photon Fusion
- 오브젝트 풀링
- meta xr
- Today
- Total
EasyCastleUNITY
2023/07/26 복습 본문
여태까지는 배열을 이용하여 데이터를 묶어서 관리하였지만
오늘 컬렉션을 배워 새로운 방법에 대해 알게 되었다.
컬렉션은 제너릭이 아닌 컬렉션과 제너릭 컬렉션이 있다.
그 중 제너릭이 아닌 컬렉션은
1.ArrayList 2.Hashtable 3.Queue 4.Stack이 있다.
이 중 ArrayList는 정확히는 컬렉션이 아니라 배열이다.
동적배열로 보통의 배열이 크기가 정해져 있다면 ArrayList는 정해져있지 않고 가변적으로 변할 수 있다.
또한 다른 컬렉션들과 비교하여 배열이기에 foreach 말고도 for을 이용하여 인스턴스 순회가 가능하다.
Hashtable은 key 와 value를 이용하여 데이터를 관리하는 컬렉션이고
Queue는 선입선출 방식을 이용한 컬렉션
Stack은 후입선출 방식을 이용한 컬렉션이다 .
제너릭이 아닌 컬렉션들은 어떤 유형의 데이터라도 넣을 수 있지만(object를 사용하기에)
이 과정에서 Boxing 문제가 발생하여 사용되지 않는 경우가 거의 대부분이다.
이러한 문제를 해결하기 위해 나온 것이 바로 제너릭 컬렉션이다.
각각의 제너릭 컬렉션은 대응대는 제너릭이 아닌 컬렉션들이 있다.
List<T> 는 ArrayList, Dictionary<Tkey,TValue> 는 Hashtable
Queue<T> 는 Queue, Stack<T>는 Stack과 대응된다.
제너릭 컬렉션들은 타입을 지정할 수 있기에 Boxing 문제를 해결할 수 있다.
Dictionary는 키와 값을 따로 분류하여 저장하기에 키를 기준으로 검색하여 바로 접근할 수 있다.
----------------------------------------------------------------------------------------------------------------------------------
또한 이번에 실습을 해보면서 여태까지는 실제 객체를 생성하는 클래스에서
객체의 필요한 모든 정보를 가지고 있었는데,
이번에 데이터 부분만 따로 정의하여 만드는 방법에 대해 새롭게 알게 되었다.
즉, 객체의 변하지 않는 정보는 따로 하나의 클래스로 만드는 것이 좋다는 것을 알 수 있었다.
그리고 실습을 하던 도중, 상속에 대해 제대로 모르고 있었다는 것을 알 수 있었다.
밑에 코드는 이번 실습에서 상속에 대해 다룬 부분이다.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace LearnDotnet
{
internal class Potion:Item
{
public Potion(ItemData data): base(data)
{
}
}
}
Item을 상속받아, ItemData의 객체 data를 매개변수로 받아, 부모클래스인 Item의 생성자를 실행한다.
이 점을 통해 상속을 받은 클래스는 자신의 생성자를 실행하기 전에,
부모의 생성자를 먼저 실행한다는 것을 이번에 정확히 알 수 있었다.
그리고 이번에 직접 클래스에 필요한 정보들을 작성해보면서
어떤 식으로 코드를 작성해 나갈지에 대해 감을 잡게 되었다.
'C#프로그래밍' 카테고리의 다른 글
JSON 파일을 활용하여 아이템 정보 저장하기 (0) | 2023.07.27 |
---|---|
대리자 연습 문제 (1,2,3,4) (0) | 2023.07.27 |
디자인 패턴 (0) | 2023.07.26 |
DataManager (0) | 2023.07.26 |
컬렉션을 활용한 아이템 및 인벤토리 (0) | 2023.07.26 |