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

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

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

Почему данный код приводит к OutOfMemoryException? Без public string name такого не бывает
Листинг программы
  1. namespace Classes
  2. {
  3. class Program
  4. {
  5. public string name
  6. {
  7. set { name = value + " Some value"; }
  8. get { return name; }
  9. }
  10. static void Main(string[] args)
  11. {
  12. Program program = new Program("Timer");
  13. program.name = "ProgName";
  14. Console.WriteLine(program.name);
  15. }
  16. public Program(string name)
  17. {
  18. this.name = name;
  19. }
  20. public static int Foo(int n) => n * 2;
  21. }
  22. }

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

textual
Листинг программы
  1. class SomeClass
  2. {
  3.     //Автосвойство на случай, если дополнительной логики не требуется
  4.     //Поле класса для этого свойства сгенерируется компилятором, т.е. оно
  5.     //всё равно есть, даже если и не указано явно.
  6.     public string Name{ get;set;}
  7.  
  8.     //Тут мы наворотили какой-то логики и компилятор нам не помощник.
  9.     //В данном случае мы используем поле для хранения данных, но
  10.     //можно творить что угодно: лезть в БД, читать файл или генерировать значение.
  11.     private string _someInternalField;
  12.     public string FavoriteBook
  13.     {
  14.         get {return _someInternalField; }
  15.         set {_someInternalField = "My book is:" + value; }
  16.     }
  17. }

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


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

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

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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут