Inventory 클래스
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace LearnDotnet
{
internal class Inventory
{
private int capacity;
private Item[] items;
private int index;
//생성자
public Inventory(int capacity)
{
this.capacity = capacity;
//아이템 그룹화, 관리
items = new Item[capacity];
}
//멤버메서드
//아이템 추가
public void AddItem(Item item)
{
this.items[index] = item;
index++;
}
//아이템 보이기
public void PrintAllItems()
{
for(int i = 0; i < this.items.Length; i++)
{
if (this.items[i] != null)
{
Console.WriteLine(this.items[i].weaponName);
}
else
{
Console.WriteLine("[ ]");
}
}
}
//아이템 꺼내기
public Item GetItemByName(string searchItemName)
{
Item foundItem = null;
for(int i = 0; i < this.items.Length; i++)
{
Item item = this.items[i];
if (this.items[i].weaponName == searchItemName)
{
this.items[i] = null;
foundItem = item;
break;
}
}
Console.WriteLine("=> {0}", foundItem);
return foundItem;
}
}
}
// item = "장검"
// if(item == "장검") {
//
//}
Item 클래스
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace LearnDotnet
{
public class Item
{
//멤버변수
public string weaponName;
//생성자
public Item(string weaponNames)
{
this.weaponName = weaponNames;
}
//멤버메서드
}
}
App 클래스
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace LearnDotnet
{
internal class App
{
//생성자 메서드
public App()
{
Inventory inven = new Inventory(5);
inven.AddItem(new Item("장검"));
inven.AddItem(new Item("단검"));
inven.AddItem(new Item("활"));
inven.PrintAllItems();
string searchName = "장검";
Item item = inven.GetItemByName(searchName);
if (item != null)
{
Console.WriteLine("{0}을 꺼냈습니다.", item.weaponName);
}
else
{
Console.WriteLine("{0}을 찾을 수 없습니다.", searchName);
}
inven.PrintAllItems();
}
}
}
추가사항 : 비어있는 아이템 공간 땡기기 ,, 빈 배열을 만들어서 기존 배열에 있는 아이템을 새 배열에 넣고 기존 배열을 버리기
'C#프로그래밍' 카테고리의 다른 글
1차원 배열 (0) | 2023.07.25 |
---|---|
배열 복습 (0) | 2023.07.25 |
배열 (정수형, 문자형, foreach) (0) | 2023.07.24 |
속성 (0) | 2023.07.24 |
구조체 ,추상 클래스, 봉인, 인터페이스, vector2 (0) | 2023.07.24 |