Size
- это структура, поэтому она не создает новый объект в куче.Это создаст новую копию значения Size
, что бы вы ни делали.
Я не вижу, что это будет иметь большое значение в любом случае, если честно.Учитывая, что свойства Width
и Height
для Size
являются встроенными, я вижу, что не будет большого наказания за хранение Size
, как вы предлагаете ... но в равной степени я вижу, что конструктор дляSize
настолько тривиально, что JIT вполне может преобразовать свойство Rectangle.Size
в почти точно такой же собственный код.
Так что я согласен, что это немного странное решение, ноЯ не думаю, что это кого-то сильно обидит.Возможно, это упрощает сериализацию или что-то в этом роде.