Przeczytaj w języku angielskim

Udostępnij za pośrednictwem


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;  
        }  
    }  
}