using System.Collections.Generic;
public abstract class Item
public string Name { get; set; }
public abstract void PrintItemInfo();
public class Weapon : Item
public Weapon(string name, int damage)
public override void PrintItemInfo()
Console.WriteLine("Weapon name: {0} - Damage: {1}",Name,m_damage);
public class Armor : Item
public Armor(string name,int ac)
public override void PrintItemInfo()
Console.WriteLine("ArmorName: {0} - AC: {1}",Name,m_ac);
public static void Main()
List<Item> items = new List<Item> {
new Weapon("weapon1",123),
new Weapon("weapon2",345),
foreach (var item in items)