using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Study_010
{
class APP1
{
public APP1()
{
//string[] arrItemNames = new string[3];
//arrItemNames[0] = "장검";
//arrItemNames[1] = "단검";
//arrItemNames[2] = "대검";
////{
//// Console.WriteLine(arrItemNames[i]);
////}
//Item[] arrItems = new Item[3];
////arrItems[0] = new Item("장검");
////arrItems[1] = new Item("단검");
////arrItems[2] = new Item("대검");
////{
//// Console.WriteLine(arrItems[i].name);
////}
//{
// arrItems[i] = new Item(arrItemNames[i]);
// Console.WriteLine(arrItems[i].name);
//}
//Inventory inventory = new Inventory();
//Item[] Items = new Item[3];
//Items[0] = new Item("장검");
//Items[1] = new Item("단검");
//Items[2] = new Item("활");
////inventory.AddItem(Items[0]); // 대개 객체 하나씩은 이렇게 하면 되지만
////inventory.AddItes(Items); // >> 배열 그 전체를 다 전달해보고 싶음
// 인벤 객체 생성
Inventory inventory = new Inventory();
//배열 객체 생성
Item[] arrItems = new Item[3];
//아이템 객체 생성
Item item = new Item("장검");
Item item1 = new Item("단검");
Item item2 = new Item("도끼");
//배열 객체에 아이템 객체 할당
arrItems[0] = item;
arrItems[1] = item1;
arrItems[2] = item2;
//인벤객체의 배열객체의 0번 인덱스가 아이템 객체 할당
//inventory.arritems[0] = item;
// >>
//인벤 객체의 배열에 단일 아이템 추가 메소드
//inventory.AddItem(item);
//inventory.AddItem(item1);
//inventory.AddItem(item2);
//인벤 객체의 배열객체를 전달
inventory.AddItems(arrItems);
Item[] invenItems = inventory.GetItems();
// 새로운 애였으면 좋겟음
// 반환 받은 배열의 첫번째 요소의 name 값 변경
invenItems[0].name = "대검";
Console.WriteLine(invenItems[0].name);//대검
Console.WriteLine(arrItems[0].name); //장검
}
}
}
=====================================================================================================
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Study_010
{
class Inventory
{
public Item[] arritems;
int arrIndex = 0; // 아래에서 안쓴 이유 : 인벤토리 객체가 소멸될때까지 값을 저장하고 있음
// 아래 메소드에서 정의했을 경우 메소드가 끝날때마다 값이 되돌아감
// 배열 인덱스를 선언한 변수
public Inventory()
{
// Item 값 3개를 할당할수있는 배열 객체 생성
this.arritems = new Item[3];
Console.WriteLine("인벤토리 생성");
}
//단일 아이템을 전달 받아 배열의 요소에 할당
public void AddItem(Item item)
{
//배열 객체의 N 인덱스에 매개변수 item 값을 할당
this.arritems[arrIndex++] = item;
if (arrIndex> 3)
{
Console.WriteLine("어디상 담기 불가능");
}
}
//배열객체를 전달바아 인벤이 가지고있는 배열에 요소를 옮겨 담음
public void AddItems(Item[] arritems)
{
{
Console.WriteLine("인벤클라스 안 : {0}, 전달받은 것 : {1}", this.arritems[i] , arritems[i]);
this.arritems[i] = arritems[i];
}
Console.WriteLine();
{
Console.WriteLine("인벤클라스 안 : {0}, 전달받은 것 : {1}", this.arritems[i], arritems[i]);
this.arritems[i] = arritems[i];
}
}
//인벤 객체의 배열 객체 반환
public Item[] GetItems()
{
//새로운 배열 객체 생성
//배열의 각 요소를 새롭게 생성해서 (새로운 아이템 객체를 생성하여)
//새로운 배열 객체에 할당
{
Item item = new Item(this.arritems[i].name);
newArrItems[i] = item;
}
//새로운 배열객체를 반환
return newArrItems;
}
}
}
============================================================================================================