I discovered that Vector2's static methods return a different Vector2 from the parameters you give them and I'm under the impression that creating new objects and dereferencing old ones on this kind of scale (100's of method calls per update) is bad for the GC.
Is this the case with C# or does XNA pool these Vector2's for use on later method calls?
I ask because I want my entities collision shapes to share the same position Vector2 as the entity itself to eliminate the need to call
updateBounds() after practically every position change. However since the methods return a different Vector2 the entities position and its respective bounds' position become differing objects.
Also is it worth making my own Vector2 class and have its methods non static so I can use
someVector.add(otherVector) instead of XNA's way?