Errore del compilatore CS0523

Aggiornamento: novembre 2007

Messaggio di errore

Il membro struct 'campo struct2' di tipo 'struct1' provoca un ciclo nel layout della struttura.
Struct member 'struct2 field' of type 'struct1' causes a cycle in the struct layout

Le definizioni di due strutture includono riferimenti ricorsivi. Modificare le definizioni struct in modo che ciascuna di esse non definisca se stessa sulla base dell'altra. Queste limitazioni sono valide solo per le strutture perché le strutture sono tipi di valore. Se si utilizzano riferimenti ricorsivi, dichiarare i tipi come classi.

Il seguente codice di esempio genera l'errore CS0523:

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

struct RecursiveLayoutStruct2
{
   public RecursiveLayoutStruct1 field;   // CS0523
}