Compiler Error CS0523


Updated: July 20, 2015

For the latest documentation on Visual Studio 2017 RC, see Visual Studio 2017 RC Documentation.

Struct member 'struct2 field' of type 'struct1' causes a cycle in the struct layout

The definitions of two structs include recursive references. Change the struct definitions such that each does not define itself on the other. This limitation applies only to structs, since structs are value types. If using recursive references, declare your types as classes.

The following sample generates CS0523:

// CS0523.cs  
// compile with: /target:library  
struct RecursiveLayoutStruct1  
   public RecursiveLayoutStruct2 field;  
struct RecursiveLayoutStruct2  
   public RecursiveLayoutStruct1 field;   // CS0523