我应该重用点和矩形还是创建新的?

时间:2010-03-12 06:54:55

标签: c# performance paint

在一个经常被调用的方法中,比如绘制事件,重用Point和Rectangle对象(用于指定位置和边界)更有效,或者我应该创建新的。

1 个答案:

答案 0 :(得分:3)

好吧,PointRectangle 不是对象 - 它们是struct。所以他们没有堆存在(除非他们在一个字段上),但相反地复制它们 可能会产生影响(不是很大 - 它们不是很大)。

如果你在紧密循环中使用它们,那么很好 - 在变量中预先初始化它们。当然,您可以将当前的x / y和宽度/高度重构为使用 Point等进行存储。另请注意(与大多数情况相反)它们实际上是可变结构,因此您可以在循环内更改其内部值等。

另请注意,IIRC存在许多图形操作的重载,这些操作采用原始值而不是结构 - 您是否考虑过那些?

但最终,我不认为与实际的图形操作相比,这会产生任何明显的影响。不要强调它;如果您的代码有效......