Ошибка компилятора CS0842
Обновлен: Ноябрь 2007
Сообщение об ошибке
Автоматически реализованные свойства не могут быть использованы в типах, помеченных StructLayout(LayoutKind.Explicit).
Automatically implemented properties cannot be used inside a type marked with StructLayout(LayoutKind.Explicit).
Автоматически реализованные свойства имеют резервные поля, предоставленные компилятором, и эти поля недоступны для исходного кода. Поэтому они не совместимы с атрибутом LayoutKind.Explicit.
Исправление ошибки
- Сделайте данное свойство обычным свойством, для которого можно предоставить тела методов доступа.
Пример
Следующий пример приводит к возникновению ошибки 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;
}
}
}