Задать вопрос
  • Почему метод ToString не рабоатет?

    sarapinit
    @sarapinit Куратор тега C#
    Точу водой камень
    у вас ToString определен как
    return String.Format("{0}/{1}", this.numerator, this.denumerator);

    в нем используются поля класса
    но в конструкторе вы поля класса не заполняете

    сейчас
    if (numerator < 0 && denumerator < 0)
                {
                    numerator = Math.Abs(numerator);
                    denumerator = Math.Abs(denumerator);
                }
    
                if (denumerator < 0 && denumerator > 0 || denumerator > 0 && numerator < 0)
                {
                    numerator = -Math.Abs(numerator);
                    denumerator = Math.Abs(denumerator);
                }


    должно быть
    if (numerator < 0 && denumerator < 0)
                {
                    this.numerator = Math.Abs(numerator);
                    this.denumerator = Math.Abs(denumerator);
                }
    
                if (denumerator < 0 && denumerator > 0 || denumerator > 0 && numerator < 0)
                {
                    this.numerator = -Math.Abs(numerator);
                    this.denumerator = Math.Abs(denumerator);
                }


    Можете помечать приватные поля нижним подчеркиванием, тогда не будете путать их с локальными переменными, например _numerator, _denumerator
    Ответ написан
    3 комментария