title: XNA Class Design with Structs as Properties and issues because they are value types and not reference types
body: <p>I'm wondering how you'd recommend designing a class, given the fact that XNA Framework uses Struct all over the place?</p>
  
  <p>For example, a spite class, which may require a Vector2 and a Rectangle (both defined as Struct) to be accessed outside of the class.</p>
  
  <p>The issue come in when you try to write code like this:</p>
  
  <pre><code>class Item 
  {
      public Vector2 Position {get; set;}
      public Item() { Position = new Vector2(5,5); }
  }
  
  Item i = new Item();
  i.Positon.X = 20; // fails with error 'Cannot modify the return value of Item because it is not a variable.'
  
  // you must write code like this
  var pos = i.Position;
  pos.X++;
  i.Position = pos;
  </code></pre>
  
  <p>The second option compiles and works, but it is just butt ugly. Is there a better way?</p>