Share via


컴파일러 오류 CS0523

업데이트: 2007년 11월

오류 메시지

'struct1' 형식의 'struct2 field' 구조체 멤버는 구조체 레이아웃에서 순환됩니다.
Struct member 'struct2 field' of type 'struct1' causes a cycle in the struct layout

두 구조체의 정의에 재귀 참조가 포함되어 있습니다. 구조체 정의를 변경하여 각 구조체가 나머지 한 쪽에서 자신을 정의하지 않도록 합니다. 구조체는 값 형식이기 때문에 이 제한은 구조체에만 적용됩니다. 재귀 참조를 사용하는 경우 형식을 클래스로 선언합니다.

다음 샘플에서는 CS0523 오류가 발생하는 경우를 보여 줍니다.

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

struct RecursiveLayoutStruct2
{
   public RecursiveLayoutStruct1 field;   // CS0523
}