netlib.narod.ru | < Назад | Оглавление | Далее > |
Структура 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 | < Назад | Оглавление | Далее > |