使用英语阅读

通过


编译器错误 CS0842

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

自动实现的属性具有编译器提供的后盾字段,并且源代码无法访问该字段。 因此,它们与 LayoutKind.Explicit不兼容。

更正此错误

  1. 使此属性成为一个常规属性,你可通过它提供访问器正文。

示例

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