Errore del compilatore CS0842

Aggiornamento: novembre 2007

Messaggio di errore

Impossibile implementare proprietà implementate automaticamente in un tipo contrassegnato con StructLayout (LayoutKind.Explicit).
Automatically implemented properties cannot be used inside a type marked with StructLayout(LayoutKind.Explicit).

Il compilatore fornisce alle proprietà implementate automaticamente campi di supporto non accessibili al codice sorgente. Pertanto, non sono compatibili con LayoutKind.Explicit.

Per correggere l'errore

  • Rendere regolare la proprietà nella quale si forniscono i corpi della funzione di accesso.

Esempio

Nell'esempio seguente viene generato l'errore 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;
        }
    }
}