netlib.narod.ru< Назад | Оглавление | Далее >

Структура Size

Структура Size очень похожа на Point, но вместо свойств X и Y в ней есть свойства Width и Height.


Свойства Size



Тип Свойство Доступ

int Width Чтение/запись
int Height Чтение/запись
bool IsEmpty Чтение


Можно создать новую структуру Size так же, как структуру Point:

  Size size = new Size(15, 20);

Свойства Width и Height структуры Size могут иметь отрицательные значения. (Причины этого будет можно увидеть дальше в этой главе, когда мы будем изучать прямоугольники.)

Структуры Point и Size так похожи, что могут создаваться друг из друга. Вот полный список конструкторов Point:


Конструкторы Point



Point()
Point(int xyPacked)
Point(int x, int y)
Point(Size size)


А вот полный список конструкторов Size:


Конструкторы Size



Size()
Size(int width, int height)
Size(Point point)


Кроме того, можно приводить объект Point к объекту Size и наоборот:

  pt = (Point) size;
  size = (Size) pt;

В структуре Size перегружаются операторы сложения и вычитания, поэтому можно складывать два размера, например:

  size3 = size1 + size2;

или вычитать два размера:

  size2 = size3 - size1;

Здесь происходит именно то, что можно предположить: свойства Width и Height просуммируются или вычтутся по отдельности. Кроме того, можно применять совмещенные операторы присваивания:

  size2 += sizel;
  size3 -= size2;

В структуре Point также перегружаются операторы сложения и вычитания, но я не говорил об этих операторах раньше, так как они тоже используют структуру Size. Так как сложение двух точек не имеет смысла, единственные объекты, которые можно складывать с объектами Point или вычитать из них, — это объекты Size:

  pt2 = pt1 +  size;
  pt3 = pt2 - size;
  pt += size;
  pt -= size;

netlib.narod.ru< Назад | Оглавление | Далее >

Сайт управляется системой uCoz