在像绘画事件这样频繁调用的方法中,重用点和矩形对象(用于指定位置和边界)是否更有效,或者我应该创建新对象。
问问题
128 次
1 回答
3
好吧,Point
它们Rectangle
不是对象——它们是struct
s。所以它们没有堆存在(除非它们在场上),但反过来复制它们可能会产生影响(不是很大——它们不是很大)。
如果您在紧密循环中使用它们,那么很好 - 在变量中预先初始化它们。当然,您可以重构当前的 x / y 和 width / height 以使用etcPoint
进行存储。另请注意(与大多数情况相反)它们实际上是可变结构,因此您可以在循环中更改它们的内部值等。
另请注意,IIRC 存在许多采用原始值而不是结构的图形操作的重载 - 你考虑过那些吗?
但最终,与实际的图形操作相比,我认为这不会产生任何明显的影响。不要强调它;如果您的代码有效...
于 2010-03-12T07:01:22.347 回答