目前我有这段代码:
selectorRect.X = (e.X + hscTileset.Value) / tileLayer.TileSize * tileLayer.TileSize;
selectorRect.Y = (e.Y + vscTileset.Value) / tileLayer.TileSize * tileLayer.TileSize;
selectorRect.Width = 32;
selectorRect.Height = 32;
我只是改变了所有矩形的字段。如果我这样做了怎么办?
selectorRect = new Rectangle((e.X + hscTileset.Value) / tileLayer.TileSize * tileLayer.TileSize, (e.Y + vscTileset.Value) / tileLayer.TileSize * tileLayer.TileSize, 32, 32)
我知道第二行更长,可读性更低,一般不推荐,但我仍然对速度差异或其对堆栈或堆的影响感到好奇。由于此代码位于控件的MouseMove事件处理程序中,因此它经常被调用,我想知道是否实例化通常会导致相当大的速度差异的新对象。
谢谢!
答案 0 :(得分:3)
如果我不得不猜测,那么因为这是struct
,我希望它们约相同。我更喜欢第二种(“新的......”)用于语义的原因 - 加上第一种不适用于属性(只有字段/变量/数组查找)。
要获得准确的衡量标准:在您的上下文中 。我诚实地怀疑这将是一个明显不同的决定。