I\'ve recently tried to create a property for a Vector2 field, just to realize that it doesn\'t work as intended.
Vector2
public Vector2 Position { get;
Objects are passed by reference and structs by value. But note that you have the "out" and "ref" modifiers on arguments.
So you can pass a struct by reference like so:
public void fooBar( ref Vector2 position ) { }