Универсальные шаблоны (Руководство по программированию на C#)
Универсальные шаблоны были добавлены в язык C# версии 2.0 и среду CLR.Универсальные шаблоны в платформе .NET Framework представляют концепцию параметров типов, которые позволяют разрабатывать классы и методы, не придерживающиеся спецификации одного или нескольких типов до тех пор, пока класс или метод не будет объявлен клиентским кодом и пока не будет создан его экземпляр.Например, используя параметр универсального типа T можно написать отдельный класс, который другой клиентский код сможет использовать без риска привидения во время выполнения или операций упаковки-преобразования, как показано в следующем примере:
// Declare the generic class.
public class GenericList<T>
{
void Add(T input) { }
}
class TestGenericList
{
private class ExampleClass { }
static void Main()
{
// Declare a list of type int.
GenericList<int> list1 = new GenericList<int>();
// Declare a list of type string.
GenericList<string> list2 = new GenericList<string>();
// Declare a list of type ExampleClass.
GenericList<ExampleClass> list3 = new GenericList<ExampleClass>();
}
}
Общие сведения об универсальных шаблонах
Используйте универсальные типы для достижения максимального уровня повторного использования кода, безопасности типа и производительности.
Наиболее частым случаем использования универсальных шаблонов является создание классов коллекции.
Библиотека классов платформы .NET Framework содержит несколько новых универсальных классов коллекций в пространстве имен System.Collections.Generic.Их следует использовать по мере возможности вместо таких классов как ArrayList в пространстве имен System.Collections.
Можно создавать собственные универсальные интерфейсы, классы, методы, события и делегаты.
Доступ универсальных классов к методам можно ограничить определенными типами данных.
Сведения о типах, используемых в универсальном типе данных, можно получить во время выполнения путем отражения.
Связанные разделы
Дополнительные сведения:
Введение в универсальные шаблоны. (Руководство по программированию на C#)
Преимущества универсальных шаблонов (Руководство по программированию на C#)
Параметры универсального типа (Руководство по программированию на C#)
Ограничения параметров типа (Руководство по программированию на C#)
Универсальные классы (Руководство по программированию на C#)
Универсальные интерфейсы. (Руководство по программированию на C#)
Универсальные методы (Руководство по программированию на C#)
Универсальные делегаты. (Руководство по программированию на C#)
Ключевое слово default в универсальном коде (Руководство по программированию на C#)
Универсальные типы и отражение (Руководство по программированию в C#)
Универсальные типы во время выполнения (Руководство по программированию в C#)
Спецификация языка C#
Дополнительные сведения см. в разделе Спецификация языка C#.
См. также
Ссылки
Типы (Руководство по программированию на C#)
<typeparam> (Руководство по программированию на C#)
<typeparamref> (Руководство по программированию на C#)