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

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

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

Добрый день. существует следующий код. Почему метод тустринг по умолчанию не возвращает полное имя экземпляра класса? Заранее спасибо за помощь!
class Money : IFormattable
{
    double usd; // доллары
    double grn; // гривны
    double rub; // рубли
 
    public Money(double usd)
    {
        if (usd < 0) throw new ArgumentOutOfRangeException("Сумма меньше нуля");
        this.usd = usd;
    }
 
    public double Usd { get { return usd; } }
    public double Grn { get { return usd * 23.11; } }
    public double Rub { get { return usd * 52.3; } }            
    
    public string ToString(string format, IFormatProvider formatProvider)
    {
        if (string.IsNullOrWhiteSpace(format)) format = "U";
 
        switch (format)
        {
            case "U":
                return Usd.ToString("F2", formatProvider) + " долл.";            
            case "G":
                return Grn.ToString("F2", formatProvider) + " грн.";             
            case "R":
                return Rub.ToString("F2", formatProvider) + " руб."; 
            default:
                throw new FormatException("Данный формат не поддерживается");   
        }
    }
}

static void Main(string[] args)
{
    Money m = new Money(1);
    Console.WriteLine(m); // выведет "1.00 долл."
 
    Console.ReadLine();
}

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

textual
Листинг программы
public virtual void WriteLine(Object value) {
  if (value==null) {
      WriteLine();
  }
  else {
      // Call WriteLine(value.ToString), not Write(Object), WriteLine().
      // This makes calls to WriteLine(Object) atomic.
      IFormattable f = value as IFormattable;
      if (f != null)
          WriteLine(f.ToString(null, FormatProvider));
      else
          WriteLine(value.ToString());
  }
}

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


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

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

11   голосов , оценка 3.818 из 5
Похожие ответы