Freigeben über


Compilerfehler CS0842

Aktualisiert: November 2007

Fehlermeldung

Automatisch implementierte Eigenschaften können nicht in einem Typ verwendet werden, der mit StructLayout(LayoutKind.Explicit) markiert ist.
Automatically implemented properties cannot be used inside a type marked with StructLayout(LayoutKind.Explicit).

Bei automatisch implementierten Eigenschaften werden die dahinter liegenden Felder vom Compiler bereitgestellt, und der Quellcode kann nicht auf das Feld zugreifen. Daher sind sie nicht mit LayoutKind.Explicit kompatibel.

So beheben Sie diesen Fehler

  • Wandeln Sie die Eigenschaft in eine reguläre Eigenschaft um, in der Sie die Accessortexte bereitstellen.

Beispiel

Durch das folgende Beispiel wird der Fehler CS0842 ausgelöst:

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