Книга: 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.355. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз