編譯器錯誤 CS0842
在標記著 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;
}
}
}