Цикл в структуре структуры, которая не существует
Это упрощенная версия моего кода:
public struct info
{
public float a, b;
public info? c;
public info(float a, float b, info? c = null)
{
this.a = a;
this.b = b;
this.c = c;
}
}
Проблема в ошибкеStruct member 'info' causes a cycle in the struct layout.
Я после структуры, как поведение типа значения. Я мог бы смоделировать это, используя класс и функцию-клон, но я не понимаю, зачем мне это нужно.
Как эта ошибка верна? Возможно, рекурсия может привести к созданию навсегда в некоторых подобных ситуациях, но я не могу придумать, как это могло бы произойти в этом случае. Ниже приведены примеры, которые должны подойти, если программа будет компилироваться.
new info(1, 2);
new info(1, 2, null);
new info(1, 2, new info(3, 4));
редактировать:
Решение, которое я использовал, состояло в том, чтобы сделать «info» классом вместо структуры и дать ему функцию-член для возврата копии, которую я использовал при передаче. Фактически имитирует то же поведение, что и структура, но с классом.
Я также создал следующий вопрос, ища ответ.