Это упрощенная версия моего кода:
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;
}
}
Проблема в том, что член структуры info вызывает цикл в макете структуры.
Мне нужно поведение типа структуры, подобное типу значения. Я мог бы смоделировать это, используя класс и функцию-член клона, но я не понимаю, зачем мне это нужно.
Как эта ошибка верна? Рекурсия, возможно, могла вызвать конструкцию навсегда в некоторых подобных ситуациях, но я не могу придумать, как это могло бы быть в данном случае. Ниже приведены примеры, которые должны подойти, если программа компилируется.
new info(1, 2);
new info(1, 2, null);
new info(1, 2, new info(3, 4));
edit:
Решение, которое я использовал, заключалось в том, чтобы сделать "info" классом вместо структуры и дать ему функцию-член для возврата копии, которую я использовал при ее передаче. Фактически имитирует то же поведение, что и структура, но с классом.
В поисках ответа я также создал следующий вопрос.