ВУЗ:
Составители:
Рубрика:
110
}
}
Как видно, сам класс в данном случае не имеет параметров, за-
дающих тип, но зато универсальным является статический метод класса
swap, имеющий родовой параметр типа T. Этому типу принадлежат па-
раметры метода и локальная переменная temp. Всякий раз при вызове
метода ему, наряду с фактическими параметрами, будет передаваться и
фактический тип, заменяющий тип T в описании метода.
Рассмотрим тестирующий метод из класса Testing, в котором
используется вызов метода swap для различных типов переменных:
public void TestSwap(){
int x1 = 5, x2 = 7;
Console.WriteLine
("до обмена: x1={0}, x2={1}",x1, x2);
Change.Swap<int>(ref x1, ref x2);
Console.WriteLine
("после обмена: x1={0}, x2={1}", x1, x2);
Person pers1 = new Person("Савлов", 25, 1500);
Person pers2 = new Person("Павлов", 35, 2100);
Console.WriteLine("до обмена: ");
pers1.PrintPerson(); pers2.PrintPerson();
Change.Swap<Person>(ref pers1, ref pers2);
Console.WriteLine("после обмена:");
pers1.PrintPerson(); pers2.PrintPerson();
}
Обратите внимание на строки, осуществляющие вызов метода:
Change.Swap<int>(ref x1, ref x2);
Change.Swap<Person>(ref pers1, ref pers2);
В момент вызова методу передаются фактические типы и фактические
параметры. В данном примере в качестве фактических типов использо-
вались встроенный тип int и тип Person, определенный пользовате-
лем.
Универсальность потребовала введения в библиотеку FCL соот-
ветствующих классов, интерфейсов, делегатов и методов классов, обла-
дающих этим свойством. В частности в библиотеке FCL создано про-
странство имен System.Collections.Generic, в которое включены
обобщенные классы коллекций.
7.4. Обобщенные классы коллекций
Коллекции типа ArrayList, Queue и Stack при работе с храни-
мыми объектами используют базовый класс Object, что позволяет им
работать с объектами любого типа. Однако, для работы с объектами,
Страницы
- « первая
- ‹ предыдущая
- …
- 108
- 109
- 110
- 111
- 112
- …
- следующая ›
- последняя »
