Переопределение ToString(). Метод по умолчанию не возвращает полное имя экземпляра класса - C#

Узнай цену своей работы

Формулировка задачи:

Добрый день. существует следующий код. Почему метод тустринг по умолчанию не возвращает полное имя экземпляра класса? Заранее спасибо за помощь!
Листинг программы
  1. class Money : IFormattable
  2. {
  3. double usd; // доллары
  4. double grn; // гривны
  5. double rub; // рубли
  6. public Money(double usd)
  7. {
  8. if (usd < 0) throw new ArgumentOutOfRangeException("Сумма меньше нуля");
  9. this.usd = usd;
  10. }
  11. public double Usd { get { return usd; } }
  12. public double Grn { get { return usd * 23.11; } }
  13. public double Rub { get { return usd * 52.3; } }
  14. public string ToString(string format, IFormatProvider formatProvider)
  15. {
  16. if (string.IsNullOrWhiteSpace(format)) format = "U";
  17. switch (format)
  18. {
  19. case "U":
  20. return Usd.ToString("F2", formatProvider) + " долл.";
  21. case "G":
  22. return Grn.ToString("F2", formatProvider) + " грн.";
  23. case "R":
  24. return Rub.ToString("F2", formatProvider) + " руб.";
  25. default:
  26. throw new FormatException("Данный формат не поддерживается");
  27. }
  28. }
  29. }
  30.  
  31. static void Main(string[] args)
  32. {
  33. Money m = new Money(1);
  34. Console.WriteLine(m); // выведет "1.00 долл."
  35. Console.ReadLine();
  36. }

Решение задачи: «Переопределение ToString(). Метод по умолчанию не возвращает полное имя экземпляра класса»

textual
Листинг программы
  1. public virtual void WriteLine(Object value) {
  2.   if (value==null) {
  3.       WriteLine();
  4.   }
  5.   else {
  6.       // Call WriteLine(value.ToString), not Write(Object), WriteLine().
  7.       // This makes calls to WriteLine(Object) atomic.
  8.       IFormattable f = value as IFormattable;
  9.       if (f != null)
  10.           WriteLine(f.ToString(null, FormatProvider));
  11.       else
  12.           WriteLine(value.ToString());
  13.   }
  14. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.818 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы