Поделиться через


Ошибка компилятора CS0843

Обновлен: Ноябрь 2007

Сообщение об ошибке

Резервное поле для автоматически реализованного свойства "имя" должно быть полностью определено до возврата управления в вызывающий метод. Попробуйте использовать вызов конструктора по умолчанию из инициализатора конструктора.
Backing field for automatically implemented property 'name' must be fully assigned before control is returned to the caller. Consider calling the default constructor from a constructor initializer.

Для присвоения значения автоматически реализованному свойству из конструктора нужно сначала вызвать конструктор по умолчанию, чтобы создать объект.

Исправление ошибки

  • Добавьте вызов конструктора по умолчанию в инициализатор конструктора, как показано в следующем примере. Обратите внимание на использование: this(). Дополнительные сведения см. в разделе this (Справочник по C#).

Пример

Следующий код вызывает ошибку CS0843.

// cs0843.cs
struct S
{
    public int AIProp { get; set; }
    public S(int i){} //CS0843
    // Try the following lines instead.
   // public S(int i) : this()
   // {
   //     AIProp = i;
   // }
}

class Test
{
    static int Main()
    {
        return 1;
    }
}