public class Consumable : Item {     public delegate void ConsumableDelegate(Entity user);       private readonly ConsumableDelegate onUse;       public Consumable(string name, ConsumableDelegate onUse) {         this.onUse = onUse;     }       public void Use(Entity user) {         onUse(user);     } }   public class ItemDatabase {     private List items;       public ItemDatabase() {         items = new List();           items.Add(new Consumable("Apple", delegate(Entity user) {             user.Heal(10);         }));     } }