fork download
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5.  
  6. namespace ConsoleApplication3
  7. {
  8. class Item
  9. {
  10. //Action<int>…戻り値なし、int型を引数にもつメソッドを設定できるデリゲート
  11. public Action<int> Use{ get; set; }
  12. public int Power { get; set; }
  13.  
  14. public static void HealAction(int p )
  15. {
  16. Console.WriteLine(p + " Recover!");
  17. }
  18.  
  19. public static void FireMagicAction(int p)
  20. {
  21. Console.WriteLine(p + " Damage!! ");
  22. }
  23.  
  24. }
  25.  
  26. class Program
  27. {
  28. static void Main(string[] args)
  29. {
  30. Item しょぼい薬 = new Item() { Power = 5, Use = Item.HealAction };
  31. Item すごい薬 = new Item() { Power = 100, Use = Item.HealAction };
  32. Item メラの巻物 = new Item() { Power = 30, Use = Item.FireMagicAction };
  33. Item メラゾーマの巻物 = new Item() { Power = 3000, Use = Item.FireMagicAction };
  34.  
  35. List<Item> items = new List<Item>();
  36. items.Add(しょぼい薬);
  37. items.Add(すごい薬);
  38. items.Add(メラゾーマの巻物);
  39. foreach (var a in items)
  40. {
  41. a.Use(a.Power);
  42. }
  43.  
  44. }
  45. }
  46. }
  47.  
Success #stdin #stdout 0.04s 37016KB
stdin
Standard input is empty
stdout
5 Recover!
100 Recover!
3000 Damage!!