Ошибка переполнения стека в C # - но как это исправить?

Я столкнулся с действительно интересной ошибкой во время выполнения, которая приводит к некорректному переполнению стека.

Я определил структуру следующим образом:

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;

Конечно, я могу исправить это, удалив значения по умолчанию или используя автоматическое получение / установку, но мне нужно, чтобы он был доступен как для чтения, так и для записи и возвращал значение по умолчанию - какие-нибудь идеи?

5
задан Andrew Bezzub 27 October 2010 в 13:37
поделиться