ВУЗ:
Составители:
Рубрика:
96
Для структур не может быть задан родительский тип (класс или
структура), однако, структура может наследовать интерфейсы. Кроме
этого, для структур неприменим модификатор abstract.
Все, что может быть включено в класс, также может быть вклю-
чено и в структуру: поля, методы и конструкторы. Аналогично классу,
структура может иметь статические и не статические поля и методы,
может иметь несколько конструкторов.
struct PointS { // структура описания точек
public float x, y;
public PointS(float xx, float yy)
{ x = xx; y = yy; }
public override string ToString() {
return "{X:" + x + ";" + "Y:" + y + "}";
}
}
Структуры похожи на классы по своему описанию и ведут себя
сходным образом, хотя и имеют существенные различия в выполнении
операции присваивания. Если при присваивании переменных класса
происходит только присваивание ссылок на объекты, то при присваива-
нии переменных структур – создается новый объект в стеке.
Console.WriteLine("Присваивание значащего типа!");
PointS pts1 = new PointS(3, 5), pts2;
pts2 = pts1;
Console.WriteLine("pts1:{0}; pts2=pt1:{1}",pts1,pts2);
pts1.x += 10;
Console.WriteLine("pts1.х+=10:{0};pts2:{1}",pts1,pts2);
Console.WriteLine("Присваивание ссылочного типа!");
Point pt1 = new Point(3, 5), pt2;
pt2 = pt1;
Console.WriteLine("pt1:{0}; pt2=pt1: {1}", pt1,pt2);
pt1.x += 10;
Console.WriteLine("pt1.х+=10:{0}; pt2: {1}",pt1, pt2);
При выборе между структурой и классом следует руководство-
ваться следующими правилами: если у класса число полей относитель-
но невелико, а число возможных объектов относительно велико, делай-
те его структурой. В этом случае память объектам будет отводиться в
стеке, не будут создаваться лишние ссылки, что позволит повысить эф-
фективность работы.
6.1.2. Структуры описания временных данных
В пространстве имен System библиотеки FCL имеются встроен-
ные структуры для работы с данными о времени, такие как DateTime и
TimeSpan. Структура DateTime представляет момент времени, кото-
Страницы
- « первая
- ‹ предыдущая
- …
- 94
- 95
- 96
- 97
- 98
- …
- следующая ›
- последняя »
