Error del compilador CS0636

Actualización: noviembre 2007

Mensaje de error

El atributo FieldOffset sólo se puede colocar en miembros de tipos marcados con StructLayout(LayoutKind.Explicit)
The FieldOffset attribute can only be placed on members of types marked with the StructLayout(LayoutKind.Explicit)

Debe utilizar el atributo StructLayout(LayoutKind.Explicit) en la declaración de la estructura, si éste contiene algún miembro marcado con el atributo FieldOffset. Para obtener más información, vea FieldOffset.

El código siguiente genera el error CS0636:

// CS0636.cs
using System;
using System.Runtime.InteropServices;

// To resolve the error, uncomment the following line:
// [StructLayout(LayoutKind.Explicit)]
struct Worksheet
{
   [FieldOffset(4)]public int i;   // CS0636 
}

public class MainClass
{
   public static void Main ()
   {
   }
}