using System.Collections.Generic;
public abstract class Item {
public abstract string GetName();
public abstract int GetPrice();
public abstract class Weapon : Item {
public abstract void Swing();
public abstract class Armor : Item {
public abstract void Wear();
private Dictionary<int, Item> items = new Dictionary<int, Item>();
public void Put(int index, Item item) {
public Item Get(int index) {
public class Sword : Weapon {
override public void Swing() {
Console.WriteLine("Sword swing");
override public int GetPrice() {
override public string GetName() {
public class Breastplate : Armor {
override public void Wear() {
Console.WriteLine("Breastplate armor equipped.");
override public int GetPrice() {
override public string GetName() {
public static void Main()
Inventory inventory = new Inventory();
Weapon item1 = new Sword();
Armor item2 = new Breastplate();
Item item = inventory.Get(0);
Weapon itemAsWeapon = (Weapon)(item);
Sword itemAsSword = (Sword)(itemAsWeapon);