Объект this нельзя использовать, пока все его поля не назначены - PullRequest
0 голосов
/ 04 апреля 2020

In Конструктор День имеет проблему:

Объект 'this' нельзя использовать, пока все его поля не назначены.

Но в том же случае для Месяц в Конструктор это работает. Почему?

struct Date
{
    private byte day;

    public byte Day
    {
        get { return day; }
        set {
            if (value > 0 && value < 32)
                day = value;
            else
                day = 0;
        }
    }

    private byte month;

    public byte Month
    {
        get { return month; }
        set
        {
            if (value > 0 && value < 13)
                month = value;
            else
                month = 0;
        }
    }

    public Date(byte day, byte month)
    {
        Day = day;
        Month = month;
    }
}

Ответы [ 2 ]

0 голосов
/ 04 апреля 2020

Спасибо за помощь. Я нашел решение. Я пытался изменить struct на class для Date . Это сработало.

class Date

{

}

0 голосов
/ 04 апреля 2020

Нет, компилятор просто останавливается после первой ошибки. Если вы закомментируете Day = day, вы увидите ту же ошибку на Month = month.

(протестировано с dotnetfiddle /.NET 4.7.2, я полагаю, что другие компиляторы могут отличаться.)

...