Читать «ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание» онлайн - страница 483
Эндрю Троелсен
Для указания такой информации пространство имен System.Drawing определяет типы Point, Rectangle, Region и Size. Очевидно, что тип Point (точка) представляет координату (x, у). Типы Rectangle (прямоугольник) содержат пару точек, представляющих левый верхний и нижний правый угол прямоугольной области. Типы Size (размер) подобны Rectangle, но эта структура представляет конкретные размеры, используя длину и ширину. Наконец, типы Region (регион) предлагают способ представления непрямоугольных областей.
Члены-переменные, используемые типами Point, Rectangle, Region и Size, внутренне представлены целочисленными данными. Если вам потребуется более "тонкая" детализация, можете использовать, соответственно, типы PointF, RectangleF и SizeF, которые (как вы можете догадаться) отображаются в соответствующие значения с плавающим разделителем. Но, независимо от внутреннего представления, все эти типы имеют аналогичные множества членов, включая ряд перегруженных операторов.
Тип Point(F)
Первым утилитарным типом, о котором вам следует знать, является тип System.Drawing.Point(F). В отличие от иллюстративных типов Point, создававшихся в предыдущих главах, тип Point(F) GDI+ поддерживает целый ряд очень полезных членов, включая следующие:
• +, -, ==, != – перегруженные варианты различных C#-операций;
• X, Y – обеспечивают доступ к соответствующим внутренним значениям (х, у) типа Point;
• IsEmpty – возвращает true (истина), если x и у установлены равными 0.
Для иллюстрации работы с утилитарными типами GDI+ рассмотрите следующее консольное приложение (названное UtilTypes), в котором используется тип System.Drawing.Point (не забудьте установить ссылку на System.Drawing.dll).
using System;
using System.Drawing;
namespace UtilTypes {
public class Program {
static void Main(string[] args) {
// Создание и смещение точки.
Point pt = new Point(100, 72);
Console.WriteLine(pt);
pt.Offset(20, 20);
Console.WriteLine(pt);
// Перегруженные операции Point.
Point pt2 = pt;
if (pt == pt2) WriteLine ("Точки одинаковы");
else WriteLine("Точки различны");
// Изменение значения X для pt2.
pt2.X = 4000;
// Отображение каждого значения X.
Console.WriteLine("Первая точка: {0} ", pt);
Console.WriteLine("Вторая точка: {0} ", рt2);
Console.ReadLine();
}
}
}
Тип Rectangle(F)