Я столкнулся с действительно интересной ошибкой во время выполнения, которая приводит к переполнению стека.
Я определил структуру следующим образом:
public enum EnumDataType { Raspberry, Orange, Pear, Apple };
public class DataRequest
{
public long DataSize
{
get { return 0; }
set { DataSize = value; }
}
public EnumDataType DataType
{
get { return EnumDataType.Apple; }
set { DataType = value; }
}
}
Прекрасно работают следующие строки:
DataRequest request = new DataRequest();
request.DataSize = 60;
Однако, когда я перехожу через следующую строку в коде, он генерирует переполнение стека:
request.DataType = EnumDataType.Raspberry;
Конечно, я могу исправить это, удалив значения по умолчанию или используя auto get / set, но мне нужно, чтобы он был и читаемым, и записываемым, и возвращал значение по умолчанию - есть идеи?