编译器错误 CS0636
FieldOffset 特性只能放置在标记为 StructLayout(LayoutKind.Explicit) 的类型的成员上
如果结构声明中包含标有 FieldOffset 特性的任何成员,则必须在该结构声明中使用 StructLayout(LayoutKind.Explicit) 特性。 有关详细信息,请参阅 FieldOffset.
下面的示例生成 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 ()
{
}
}