更新:2007 年 11 月

错误消息

不能在用 StructLayout(LayoutKind.Explicit) 标记的类型内部使用自动实现的属性。

自动实现的属性具有由编译器提供的支持字段,此类字段不能由源代码访问。因此,这些属性与 LayoutKind..::.Explicit 不兼容。

更正此错误

  • 使该属性成为提供访问器体的常规属性。

示例

下面的示例生成 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;
        }
    }
}