.NET глазами дельфийца. C# - Структуры
ОГЛАВЛЕНИЕ
Страница 16 из 19
Структуры
Структуры в C# аналогичны записям в Delphi в том смысле, что являютсяданными, передаваемыми по значению, а не по ссылке.
На самом деле семантика структур в C# ближе к классам, за исключением двухосновных ограничений:
- структуры не могут быть абстрактными или содержать абстрактные методы;
- наследование от структур не поддерживается, в связи с чем методы структур не могут быть виртуальными.
Пример структуры:
struct Point {
public int x, y;
public Point(int x, int y) {
this.x = x;
this.y = y;
}
}
Использование структур может как повыситьпроизводительность программы (например, при размещении большого количествамелких объектов лучше использовать структуры), так и ухудшить ее (еслииспользуется структура, содержащая большие объемы данных, то при передаче ее вкачестве параметра будет выполняться лишнее копирование).
Существует эмпирическое правило: если объем данных меньше16 байт, то для их хранения лучше использовать структуру, если больше -класс.