Lire en anglais

Partager via


Erreur du compilateur CS0842

Impossible d’utiliser des propriétés implémentées automatiquement dans un type marqué avec StructLayout(LayoutKind.Explicit).

Les propriétés implémentées automatiquement ont leurs champs de stockage fournis par le compilateur et le champ n’est pas accessible au code source. Elles ne sont donc pas compatibles avec LayoutKind.Explicit.

Pour corriger cette erreur

  1. Définissez la propriété en tant que propriété normale dans laquelle vous fournissez les corps d’accesseur.

Exemple

L’exemple suivant génère l’erreur 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;  
        }  
    }  
}