【发布时间】:2013-12-06 22:39:23
【问题描述】:
我想弥补我知识上的一些空白。从此开始。
示例(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 对象(如果存在)。
而每个新的“人”对象都被分配了一个新的内存位置。
如果这是正确的,如果有错误请纠正我,这意味着使用“friend”而不是“guy”更节省内存。
会不会出现“男人”会更好的情况?会不会依赖于构造函数的实现?
【问题讨论】:
标签: c# memory-efficient