public class Bar
{
public string Name { get; set; } = "Bob"; // <= StackOverflow public List<Bar> Bars { get; set; } = new List<Bar> { new Bar { Name = "Martin" } };
}
///............var bar = new Bar(); // <= StackOverflow
S>>Хорошая практика создавать пустой конструктор без параметров если он используется в том числе для десериализации
GIV>И мутабельные поля в подарок, отличная практика!
Поля то могут быть и немутабельными, а StackOverflow получишь
и солнце б утром не вставало, когда бы не было меня
Здравствуйте, Serginio1, Вы писали:
S> Поля то могут быть и немутабельными, а StackOverflow получишь
Ну если сериализовывать — десериализовывать то что у стартовом сообщении там че угодно можно поймать и стековерфлоу и память выжрать в 0 на циклических ссылках.
Здравствуйте, GarryIV, Вы писали:
S>> Поля то могут быть и немутабельными, а StackOverflow получишь GIV>Ну если сериализовывать — десериализовывать то что у стартовом сообщении там че угодно можно поймать и стековерфлоу и память выжрать в 0 на циклических ссылках.
StackOverflow не зависит от мутабельности, а зависит от алгоритма!
Циклические ссылки разруливаются итд.
И как к этому вообще относится конструктор пустой конструктор по умолчанию, который используется!
и солнце б утром не вставало, когда бы не было меня
Здравствуйте, Serginio1, Вы писали:
S> И как к этому вообще относится конструктор пустой конструктор по умолчанию, который используется!
пустой конструктор вроде подразумевает мутабельность. Поля то проинициализированы по-умолчанию, их желательно поменять на нужные. Хотя я не понял к чему тут пустые конструкторы вообще. Они вроде ортогональны первоначальной проблеме. Замечу, что в изначальном вопросе конструктор как раз пустой, но это не уберегло от переполнения.
Здравствуйте, sergii.p, Вы писали:
SP>Здравствуйте, Serginio1, Вы писали:
S>> И как к этому вообще относится конструктор пустой конструктор по умолчанию, который используется!
SP>пустой конструктор вроде подразумевает мутабельность. Поля то проинициализированы по-умолчанию, их желательно поменять на нужные. Хотя я не понял к чему тут пустые конструкторы вообще. Они вроде ортогональны первоначальной проблеме. Замечу, что в изначальном вопросе конструктор как раз пустой, но это не уберегло от переполнения.
Конструктор бы в стеке отображался. И можно точку останова поставить!
и солнце б утром не вставало, когда бы не было меня
Здравствуйте, Serginio1, Вы писали:
S> Конструктор бы в стеке отображался.
не ясно чем поможет конструктор в стеке. Смотрим в него, а он пустой! Новичок точно войдёт в ступор.
S> И можно точку останова поставить!
точку останова можно поставить и на new. Да и с ним получится как в анекдоте про карандаш и грифель. Кто-то придёт, увидит пустой конструктор, не поймёт глубоких смыслов и удалит код за ненадобностью.
Здравствуйте, sergii.p, Вы писали:
S>> И можно точку останова поставить!
SP>точку останова можно поставить и на new. Да и с ним получится как в анекдоте про карандаш и грифель. Кто-то придёт, увидит пустой конструктор, не поймёт глубоких смыслов и удалит код за ненадобностью.
Ну я то пишу про глубокие смыслы! "И опыт сын ошибок ..."
и солнце б утром не вставало, когда бы не было меня