C# 反复实例化新矩形是否比更改其所有字段慢?

C# 反复实例化新矩形是否比更改其所有字段慢?,c#,C#,目前我有以下代码: 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.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事件处理程序中,因此经常调用它,我想知道是否实例化一个新对象,这通常会导致相当大的速度差异


谢谢

如果让我猜的话,那么既然这是一个
结构,我希望它们大致相同。但出于语义方面的原因,我更喜欢第二个(“new…”),加上第一个不适用于属性(仅适用于字段/变量/数组查找)


要获得精确的度量,请在您的上下文中对其进行分析。我怀疑这将是一个有明显区别的决定。

这里回答了我自己的问题,但这条线索给了我一个想法(系统、诊断、秒表)。单独更改所有字段通常需要3-16个刻度。我不得不使用滴答声,因为它一直以0毫秒的速度出现。然而,实例化一个新对象大约需要20-40个周期。因此,显然,单独更改每个字段不仅可读性更好,而且速度更快(对于内存来说可能更好)。您无法分析一个操作:计时方式,即计时100万个此类操作,并进行比较。