英語で読む

次の方法で共有


コンパイラ エラー 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;  
        }  
    }  
}