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; }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д