Я хочу прояснить некоторые пробелы в моих знаниях. Начиная с этого.Какая разница в памяти между созданием объекта внутри и снаружи цикла
Пример (C#):
List<Person> names = new List<Person>();
Person friend = null;
for(int i = 0; i < 5; i++)
{
friend = new Person();
Person guy = new Person();
guy.name = "Bob" + i;
friend.name = "Bill" + i;
names.Add(guy);
names.Add(friend);
}
Здесь у меня есть два объекта Person, используемые в том же цикле, чтобы сэкономить пространство.
Насколько я понимаю, каждый раз, когда я создаю экземпляр друга, я использую одно и то же место в памяти, перезаписывая существующий объект Person, если он присутствует.
Принимая во внимание, что каждому новому «парному» объекту присваивается новое место памяти.
При условии, что это правильно, и, пожалуйста, исправьте меня, если это неправильно, это означает, что использование «друга» над «парнем» более эффективно с точки зрения памяти.
Был ли когда-нибудь случай, когда «парень» был бы лучше? Может ли это зависеть от реализации конструктора?
Спасибо за это. Действительно отличное объяснение. Нет, я это понимаю, это была одна из тех вещей, в которых я никогда не обнимал голову. Еще раз спасибо! – tjheslin1