1. 아이템 장착 관리 및 스탯 변경
2. 아이템 정보 클래스화
3. 아이템 클래스 배열화
4. 문제 및 해결
5. 배열화한 아이템 정보 표시하기
이어서 인벤토리의 아이템의 번호를 입력하면 해당 아이템을 장착하는 기능을 구현하였다.
장착하면 아래 이미지 처럼 해당 스탯에 능력치가 부여된다.


인벤토리와 보유장비를 클래스화 하고 구조체, 배열로 이용하면 간편하게 쓸 수 있을 것 같지만
처음에는 내부 변수로만 만들어 보려고 했다.

역변수로 장착 인벤토리의 배열 equip을 생성하였다.
해당 장비의 index로 equipNum을 받아 해당 값이 [E]가 아니면 [E]로 바꿔준다.


마찬가지로 배열을 생성해서 스탯에 해당하는 index의 텍스트를 변경한다.
전역변수의 값이 [E]이면 해당 위치에 스탯 값을 부여한다.
텍스트로 먼저 해보니 클래스에 어떤 변수들을 넣어야 할지,
생성자에 무엇을 넘겨줘야 하는지 정리가 되었다.

배열에 넣을 예정이기 때문에 index, 장비 이름 name과 방어구/무기 type
state은 장비의 스탯 정보, info는 장비 설명이다.
이제 작성한 클래스를 이용해서 장비 하나 하나 객체를 생성해서
배열에 넣고 이를 장비창과 스탯창에 사용하면 되겠다.
다른 메서드에도 사용하기 위해서 배열을 전역변수로 생성했다.
클래스 타입의 List를 전역선언하고 생성자로 데이터를 입력한 뒤, 배열에 추가해 주었다,

그런데 위 코드에서 문제가 발생했다.
Object reference not set to an instance of an object.
"개체 참조가 개체의 인스턴스로 설정되지 않았습니다"
InvenGears.Add(gear0);부분에서 오류가 나타났다.
처음에는 위의 오류가 NULL값이 들어가는 오류인 줄 알았다.
그래서 List가 아닌 그냥 배열로 선언해서 넣었는데도 같은 오류가 나타났다.
알고 봤더니 배열의 크기를 설정해주지 않았었다.
배열의 최대크기를 [2]로 지정해 주었더니 오류가 해결되었다.
그걸로 배열의 초기화를 해주지 않아 일어난 것을 깨달았고
List<Inventory>형태로 다시 배열을 선언해주었다.

비어있는 List의 초기화 형태 new List<>()인 점을 이번에 알게 되었다.

배열 안의 내용들을 표기하기 위해서 메서드를 생성했다.
인벤토리 내부 표시와 장착 관리 표시를 나눠서 작성했다.

실행 결과는 위와 같다.
아이템 앞의 번호를 입력하면 장착되고 [E] 표시가 나타난다.
이미 장착하고 있는 아이템에 다시 번호를 입력하면 [E]가 사라진다.

천옷을 장착하여 상승된 스탯은 기본 스탯 뒤에 +2로 표시된다
장착하지 않아 스탯이 상승되지 않아도 +0로 표시된다.
보통 상승하는 스탯이 0이라면 표시되지 않아야 하는데,
해당 예외처리를 하는데 좀 더 생각이 필요하여 일단 두었다.
감성자체는 나쁘지 않은 것 같다.
처음엔 장착 유무를 bool형태로 만들었는데 이 변수를 가지고
[E] 혹은 " "으로 표기하는 방법에 대해 고민했는데,
새로운 변수나 다른 코드를 길게 쓰기 보다
변수를 bool형태에서 String로 바꾸어
값 자체를 [E]혹은 " "로 넣어줬다.
출력하는 값 WriteLine을 조건문으로 어떻게 나눠야 하나 고민하다
WriteLine은 고정하고 변수를 사전에 바꾸는 방법을 사용했다.
추후에 이를 어떻게 해결할 수 있을지 찾아봐야겠다.