Поделиться через


Ошибка компилятора CS0523

Обновлен: Ноябрь 2007

Сообщение об ошибке

Член структуры "struct2 field" типа "struct1" приводит к циклу в этой структуре
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
}