在一个经常被调用的方法中,比如绘制事件,重用Point和Rectangle对象(用于指定位置和边界)更有效,或者我应该创建新的。
答案 0 :(得分:3)
好吧,Point
和Rectangle
不是对象 - 它们是struct
。所以他们没有堆存在(除非他们在一个字段上),但相反地复制它们 可能会产生影响(不是很大 - 它们不是很大)。
如果你在紧密循环中使用它们,那么很好 - 在变量中预先初始化它们。当然,您可以将当前的x / y和宽度/高度重构为使用 Point
等进行存储。另请注意(与大多数情况相反)它们实际上是可变结构,因此您可以在循环内更改其内部值等。
另请注意,IIRC存在许多图形操作的重载,这些操作采用原始值而不是结构 - 您是否考虑过那些?
但最终,我不认为与实际的图形操作相比,这会产生任何明显的影响。不要强调它;如果您的代码有效......