Книга: C# 4.0: полное руководство
Обобщенные структуры
Обобщенные структуры
В C# разрешается создавать обобщенные структуры. Синтаксис для них такой же, как и для обобщенных классов. В качестве примера ниже приведена программа, в которой создается обобщенная структура XY для хранения координат X, Y.
// Продемонстрировать применение обобщенной структуры,
using System;
// Эта структура является обобщенной,
struct XY<T> {
T х;
T y;
public XY(T а, T b) {
х = а;
y = b;
}
public T X {
get { return х; }
set { х = value; }
}
public T Y {
get { return y; }
set { y = value; }
}
}
class StructTest {
static void Main() {
XY<int> xy = new XY<int>(10, 20);
XY<double> xy2 = new XY<double>(88.0, 99.0);
Console.WriteLine(xy.X + ", " + xy.Y);
Console.WriteLine(xy2.X + ", " + xy2.Y);
}
}
При выполнении этой программы получается следующий результат.
10, 20
88, 99
Как и на обобщенные классы, на обобщенные структуры могут накладываться ограничения. Например, на аргументы типа в приведенном ниже варианте структуры XY накладывается ограничение типа значения.
struct XY<T> where Т : struct {
// ...
- Что такое обобщения
- Простой пример обобщений
- Обобщенный класс с двумя параметрами типа
- Общая форма обобщенного класса
- Получение значения, присваиваемого параметру типа по умолчанию
- Обобщенные структуры
- Создание обобщенного метода
- Обобщенные делегаты
- Обобщенные интерфейсы
- Сравнение экземпляров параметра типа
- Иерархии обобщенных классов
- Переопределение виртуальных методов в обобщенном классе
- Перегрузка методов с несколькими параметрами типа
- Ковариантность и контравариантность в параметрах обобщенного типа
- Создание экземпляров объектов обобщенных типов
- Некоторые ограничения, присущие обобщениям
- Заключительные соображения относительно обобщений
- Обобщенные коллекции
- Обобщенные типы
- 1.4 Структуры данных, связанные с драйверами устройств Windows
- ВЛОЖЕННЫЕ СТРУКТУРЫ
- Практическая работа 35. Создание структуры документа и вставка оглавления
- Разработка структуры базы данных
- 6.2. Типы и структуры данных
- Ветвящиеся структуры – архитектура мира растений
- Построение структуры веб-страницы
- Фундаментальные алгоритмы и структуры данных в Delphi
- 4.2. Представление базовой структуры программы
- 14. Структуры и другие типы данных