我必须创建大量稍微不同的对象进行测试。所有的属性都被修改为不同的对象,但是一旦我创建了对象&就可以做到这一点,我不再需要它了。 我应该创建一个新的本地对象还是刚刚覆盖&重新分配循环范围之外的对象?C#创建新对象vs覆盖现有对象(性能)
新(本地)对象
int testCases = 10;
for(int i=0; i<testCases; i++){
TestObject localObject = new TestObject(); //local variable for the loop
//change properties & do stuff with the test object
}
重新分配/覆盖现有对象
TestObject myObject;
int testCases = 10;
for(int i=0; i<testCases; i++){
myObject = new TestObject(); //reassign object that exists outside the loop
//change properties & do stuff with the test object
}
“更改属性&做的东西” 不是那么重要,我知道如何创建我的对象的不同版本,只是不知道我是否应该摧毁他们每个迭代
您不重新分配对象,您创建一个新实例并将该实例分配给该变量。 –
新实例是在两个版本中创建的,所以它并不重要。如果你不在循环外部使用'myObject',那么编译器会优化它。 – Maarten