Да, и я не могу перевести полностью заданное на родной язык, и не понимаю, что думает компилятор.
UML моего домашнего задания: (мы должны его использовать)
Интерфейс: IComparable
- +Numerator{get;}:long
- +Denominator{get;}:long
- +Rational(числитель:long, знаменатель:long)
- +НОД(a:long, b:long):long
- +Equals(r :Rationaol):bool
- ...
Я пишу это домашнее задание на Java с классами, и они работают правильно.
У меня большая проблема, я не понимаю, что означают следующие ошибки:
Ошибка 2. Поле резервного копирования для автоматически реализованного свойства «Rational.Rational.Denominator». должен быть полностью назначен, прежде чем управление будет возвращено вызывающему объекту. Рассмотрите возможность вызова конструктора по умолчанию из инициализатора конструктора.
Ошибка 3. Поле поддержки для автоматически реализуемого свойства «Rational.Rational.Numerator» должно быть полностью присвоено, прежде чем управление будет возвращено звонящий. Рассмотрите возможность вызова конструктора по умолчанию из инициализатора конструктора.
Ошибка 4. Объект this нельзя использовать, пока все его поля не будут назначены
мой код:
пространство имен Rational
{
// (Rational is underline) here the 2 and 3 error
public struct Rational : IComparable
{
public long Numerator { get; set; }
public long Denominator { get; set; }
public Rational(long num, long den)
{
// and here (GCD is underline) the 4. error
long simple = GCD(num, den);
this.Numerator = num/simple;
this.Denominator = den/simple;
}
public long GCD(long a, long b)
{
long c = Math.Abs(a);
long d = Math.Abs(b);
if (d == 0) return c;
return GCD(d, c % d);
}
public override string ToString()
{
if (Denominator==1)
{
return Numerator + "";
}
return Numerator+"/"+Denominator;
}
public override bool Equals(object obj)
{
bool result = false;
if (obj is Rational)
{
Rational r = (Rational)obj;
result = this.Equals(r);
}
return result;
}
public bool Equals(Rational r)
{
if ((object)r ==null)
{
return false;
}
return this.Denominator == r.Denominator && this.Numerator == r.Numerator;
}
public int CompareTo(Rational other)
{
...
Подробнее здесь: https://stackoverflow.com/questions/802 ... ile-errors