在经常被调用的方法中,比如绘画事件,重用点和矩形对象(用于指定位置和边界)是否更有效,或者我应该创建新的。

最佳答案

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

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

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

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

关于c# - 我应该重用点和矩形还是创建新的?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2431011/

10-11 04:09