Compiler Error CS0840
'Property name' must declare a body because it is not marked abstract or extern. Automatically implemented properties must define both get and set accessors.
Unless a regular property is marked as abstract or extern, or is a member of a partial type, it must supply a body. Auto-implemented properties do not provide accessor bodies, but they must specify both accessors. To create a read-only auto-implemented property, make the set accessor private.
To correct this error
- Supply the missing body or accessor or else use the abstract, extern, or partial (Type) (C# Reference) modifiers on it and/or its enclosing type.
Example
The following example generates 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; }
}