Advertisement
KrimsN

Untitled

May 28th, 2019
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.87 KB | None | 0 0
  1.  public override string ToString()
  2.         {
  3.             return ToString("G", CultureInfo.CurrentCulture);
  4.         }
  5.  
  6.         /// <summary>
  7.         /// Вид форматной строки: {index[:formatString][,alignment]}
  8.         /// </summary>
  9.         public string ToString(string _format)
  10.         {
  11.             return ToString(_format, CultureInfo.CurrentCulture);
  12.         }
  13.  
  14.         /// <summary>
  15.         /// Вид форматной строки: {index[:formatString][,alignment]}
  16.         /// </summary>
  17.         public string ToString(string _format, IFormatProvider _provider)
  18.         {
  19.             if (_matrix == null)
  20.                 return "null";
  21.  
  22.             _provider = _provider ?? CultureInfo.CurrentCulture;
  23.  
  24.             string width = "0";
  25.  
  26.             if (string.IsNullOrEmpty(_format))
  27.                 _format = "{0:G} ";
  28.             else if (_format.IndexOf(',') != -1)
  29.             {
  30.                 int index = _format.IndexOf(',');
  31.  
  32.                 width = _format.Substring(index + 1);
  33.                 _format = string.Format("{{0,{0}:{1}}}", width, _format.Substring(0, index));
  34.  
  35.                 if (width == "" || _format == "")
  36.                     throw new FormatException(string.Format("Неверный формат для печати матрицы {0}", _id));
  37.             }
  38.             else
  39.             {
  40.                 width = char.IsLetter(_format[0]) || _format[0] == '0' ? "12" : _format;
  41.                 _format = string.Format(char.IsLetter(_format[0]) || _format[0] == '0' ? "{{0:{0}}} " : "{{0,{0}}}", _format);
  42.             }
  43.  
  44.             StringBuilder str = new StringBuilder(Convert.ToInt32(width) * _matrix.Length + 2 * _matrix.GetLength(0));
  45.  
  46.             for (int i = 0; i < _matrix.GetLength(0); i++)
  47.             {
  48.                 for (int j = 0; j < _matrix.GetLength(1); j++)
  49.                     str.AppendFormat(_format, _matrix[i, j]);
  50.  
  51.                 str.AppendFormat("\n");
  52.             }
  53.  
  54.             return str.ToString();
  55.         }
  56.  
  57.         object ICloneable.Clone()
  58.         {
  59.             return Clone();
  60.         }
  61.  
  62.         public Matrix Clone()
  63.         {
  64.             Matrix clone = new Matrix(this);
  65.  
  66.             return clone;
  67.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement