Compiler Error CS0842
Automatically implemented properties cannot be used inside a type marked with StructLayout(LayoutKind.Explicit).
Auto-implemented properties have their backing fields provided by the compiler and the field is not accessible to source code. Therefore, they are not compatible with LayoutKind.Explicit.
To correct this error
- Make the property a regular property in which you provide the accessor bodies.
Example
The following example generates CS0842:
// cs0842.cs
using System;
using System.Runtime.InteropServices;
namespace TestNamespace
{
[StructLayout(LayoutKind.Explicit)]
struct Str
{
public int Num // CS0842
{
get;
set;
}
static int Main()
{
return 1;
}
}
}