StaticStringBuilder.cs 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. // Magica Cloth.
  2. // Copyright (c) MagicaSoft, 2020-2022.
  3. // https://magicasoft.jp
  4. using System.Text;
  5. namespace MagicaCloth
  6. {
  7. /// <summary>
  8. /// グローバルStringBuilderクラス
  9. /// </summary>
  10. public class StaticStringBuilder
  11. {
  12. private static StringBuilder stringBuilder = new StringBuilder(1024);
  13. /// <summary>
  14. /// StringBuilderのインスタンスを取得する
  15. /// </summary>
  16. public static StringBuilder Instance
  17. {
  18. get
  19. {
  20. return stringBuilder;
  21. }
  22. }
  23. /// <summary>
  24. /// StringBuilferの内部をクリアする
  25. /// </summary>
  26. public static void Clear()
  27. {
  28. stringBuilder.Length = 0;
  29. }
  30. /// <summary>
  31. /// グローバルStringBuilderに与えられた文字を結合する
  32. /// </summary>
  33. /// <param name="args"></param>
  34. /// <returns></returns>
  35. public static StringBuilder Append(params object[] args)
  36. {
  37. //stringBuilder.Length = 0;
  38. for (int i = 0; i < args.Length; i++)
  39. {
  40. stringBuilder.Append(args[i]);
  41. }
  42. return stringBuilder;
  43. //return stringBuilder.ToString();
  44. }
  45. /// <summary>
  46. /// グローバルStringBuilderに与えられた文字列を結合し、最後に改行コードを挿入する
  47. /// </summary>
  48. /// <param name="args"></param>
  49. /// <returns></returns>
  50. public static StringBuilder AppendLine(params object[] args)
  51. {
  52. for (int i = 0; i < args.Length; i++)
  53. {
  54. stringBuilder.Append(args[i]);
  55. }
  56. stringBuilder.Append("\n");
  57. return stringBuilder;
  58. }
  59. /// <summary>
  60. /// グローバルStringBuilderに改行を追加する
  61. /// </summary>
  62. /// <returns></returns>
  63. public static StringBuilder AppendLine()
  64. {
  65. stringBuilder.Append("\n");
  66. return stringBuilder;
  67. }
  68. /// <summary>
  69. /// 与えられた文字を結合して、結合文字列を返す
  70. /// </summary>
  71. /// <param name="args"></param>
  72. /// <returns></returns>
  73. public static string AppendToString(params object[] args)
  74. {
  75. stringBuilder.Length = 0;
  76. for (int i = 0; i < args.Length; i++)
  77. {
  78. stringBuilder.Append(args[i]);
  79. }
  80. return stringBuilder.ToString();
  81. }
  82. /// <summary>
  83. /// グローバルStringBuilderの文字列を返す
  84. /// </summary>
  85. /// <returns></returns>
  86. public static new string ToString()
  87. {
  88. return stringBuilder.ToString();
  89. }
  90. }
  91. }