Я столкнулся с действительно интересной ошибкой во время выполнения, которая приводит к некорректному переполнению стека.
Я определил структуру следующим образом:
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;
Конечно, я могу исправить это, удалив значения по умолчанию или используя автоматическое получение / установку, но мне нужно, чтобы он был доступен как для чтения, так и для записи и возвращал значение по умолчанию - какие-нибудь идеи?