Błąd kompilatora CS0842

Właściwości zaimplementowane automatycznie nie mogą być używane wewnątrz typu oznaczonego za pomocą właściwości StructLayout(LayoutKind.Explicit).

Automatycznie zaimplementowane właściwości mają pola zapasowe udostępniane przez kompilator, a pole nie jest dostępne dla kodu źródłowego. W związku z tym nie są one zgodne z LayoutKind.Explicit.

Aby poprawić ten błąd

  1. Ustaw właściwość regularną, w której podajesz jednostki dostępu.

Przykład

Poniższy przykład generuje 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;  
        }  
    }  
}