OutOfMemoryException, почему? - C#

Узнай цену своей работы

Формулировка задачи:

Почему данный код приводит к OutOfMemoryException? Без public string name такого не бывает
namespace Classes
{
    class Program
    {
        public string name
        {
           set { name = value + " Some value"; }
           get { return name; }
        }
 
        static void Main(string[] args)
        {
            Program program = new Program("Timer");
            program.name = "ProgName";
            Console.WriteLine(program.name);
        }
 
        public Program(string name)
        {
            this.name = name;
        }
 
        public static int Foo(int n) => n * 2;
    }
}

Решение задачи: «OutOfMemoryException, почему?»

textual
Листинг программы
class SomeClass
{
    //Автосвойство на случай, если дополнительной логики не требуется
    //Поле класса для этого свойства сгенерируется компилятором, т.е. оно
    //всё равно есть, даже если и не указано явно.
    public string Name{ get;set;}
 
    //Тут мы наворотили какой-то логики и компилятор нам не помощник.
    //В данном случае мы используем поле для хранения данных, но
    //можно творить что угодно: лезть в БД, читать файл или генерировать значение.
    private string _someInternalField;
    public string FavoriteBook
    {
        get {return _someInternalField; }
        set {_someInternalField = "My book is:" + value; }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4 из 5