Ошибка компилятора CS0840
Обновлен: Ноябрь 2007
Сообщение об ошибке
"Property name" должен объявлять основную часть, поскольку оно не помечено как abstract и extern. Свойства, реализованные автоматически, должны определять методы доступа get и set.
'Property name' must declare a body because it is not marked abstract or extern. Automatically implemented properties must define both get and set accessors.
Пока регулярное свойство помечено как abstract or extern или является членом типа partial, оно должно предоставлять основную часть. Автоматически реализуемые свойства не предоставляют основные части методов доступа, однако должны указывать оба эти метода. Чтобы создать автоматически реализуемое свойство, доступное только для чтения, задайте private метод доступа set.
Исправление данной ошибки
- Предоставьте отсутствующую основную часть или метод доступа либо используйте в нем и/или в его вмещающем типе модификаторы abstract, extern или разделяемый (тип) (Справочник по C#).
Пример
В следующем примере возникает ошибка CS0840.
// cs0840.cs
// Compile with /target:library
using System;
class Test
{
public int myProp { get; } // CS0840
// to create a read-only property
// try the following line instead
public int myProp2 { get; private set; }
}
См. также
Ссылки
Автоматически реализуемые свойства (Руководство по программированию на C#)