Прочитать на английском

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


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

Автоматически реализованные свойства не могут использоваться в типах, помеченных StructLayout(LayoutKind.Explicit).

Автоматически реализованные свойства имеют свои резервные поля, предоставляемые компилятором, и поле недоступно для исходного кода. Таким образом, они не совместимы с LayoutKind.Explicit.

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

  1. Сделайте свойство обычным свойством, в котором можно предоставлять тела методов доступа.

Пример

Следующий пример приводит к возникновению ошибки 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;  
        }  
    }  
}