I'm new to C#, and I'm working with a class that has a Rectangle field. I've read that Properties are the most accepted way to declare public fields, so I tried something like this:
public class MyClass
{
  public Rectangle MyBox { get; set; }
  public UpdateBox(int x, int y)
  {
    MyBox.X = x;
    MyBox.Y = y;
  }
}
It won't let me do MyBox.X = x because (from what I've read), Rectangle is a struct, and the getter returns a copy of the Rectangle, so I would not be modifying the value I want. 
What is the standard for updating fields like this? I've found two solutions so far:
Creating a new Rectangle to store in the variable:
public class MyClass
{
  public Rectangle MyBox { get; set; }
  public UpdateBox(int x, int y)
  {
    MyBox = new Rectangle(x, y, MyBox.Width, MyBox.Height);
  }
}
but this seems like it would not be very memory efficient. Then there is just not making Rectangle a property:
public class MyClass
{
  public Rectangle MyBox;
  public UpdateBox(int x, int y)
  {
    MyBox.X = x;
    MyBox.Y = y;
  }
}
What is the standard for this kind of functionality?