Обобщения или шаблоны (Generic) в C# — Учим Шарп #12



Обобщения или шаблоны (Generic) в языке программирования C#

На этом занятии мы рассмотрим Универсальные шаблоны в языке программирования C#. Также часто встречаются названия обобщения, дженерики или generics. Они позволяют определять так называемые универсальные типы данных, которые позволяют динамически определять тип, при этом оставаясь языком со строгой типизацией.

Подписывайтесь на информационные каналы курса, чтобы ничего не пропустить и не потерять информацию:
Закрытый чат для участников курса: https://vk.cc/8Ev4Gv
Рассылка с оповещениями в ВК: https://vk.cc/86Y7Pa

Подписывайтесь на мои социальные сети, там много всего интересного и полезного:
https://vk.com/codeblog
https://tele.click/codeblog
https://zen.yandex.ru/codeblog

Поддержать канал: https://www.donationalerts.ru/r/shwanoff

Кстати, меня зовут Шванов Вадим, и я программист на языке C# уже больше 8 лет, а также я являюсь автором ресурсов для разработчиков CODE BLOG. На этом канале я рассказывают про IT, технологии и веду курс C# с нуля под названием Учим Шарп. В его рамках мы рассматриваем язык программирования c# с нуля, синтаксис, структуры данных, алгоритмы, паттерны проектирования и многое другое. Эти уроки c sharp подойдут для начинающих и для тех кто хочет подробнее изучить платформу .net и среду разработки visual studio. Для меня важно не только показать практическое применение языка си шарп и платформы dotnet, но и объяснить базовые идеи программирования. Уроки с# выходят как минимум два раза в неделю в понедельник и четверг в 20-00. C# курс рассчитан на то, чтобы изучить программирование с нуля. Все занятия веду я сам — опытный программист c#. Разработка ведется в IDE visual studio c#. Подписывайтесь, впереди еще много интересного и полезного об it, программировании как для начинающих, так и для более опытных программистов c#.

После появления первого выпуска платформы .NET программисты часто использовали пространство имен System.Collections для получения более гибкого способа управления данными в приложениях. Однако, начиная с версии .NET 2.0, язык программирования C# был расширен поддержкой средства, которое называется обобщением (generic). Вместе с ним библиотеки базовых классов пополнились совершенно новым пространством имен, связанным с коллекциями — System.Collections.Generic.

Термин обобщение, по существу, означает параметризированный тип. Особая роль параметризированных типов состоит в том, что они позволяют создавать классы, структуры, интерфейсы, методы и делегаты, в которых обрабатываемые данные указываются в виде параметра. С помощью обобщений можно, например, создать единый класс, который автоматически становится пригодным для обработки разнотипных данных. Класс, структура, интерфейс, метод или делегат, оперирующий параметризированным типом данных, называется обобщенным, как, например, обобщенный класс или обобщенный метод.

Следует особо подчеркнуть, что в C# всегда имелась возможность создавать обобщенный код, оперируя ссылками типа object. А поскольку класс object является базовым для всех остальных классов, то по ссылке типа object можно обращаться к объекту любого типа. Таким образом, до появления обобщений для оперирования разнотипными объектами в программах служил обобщенный код, в котором для этой цели использовались ссылки типа object.

Обобщения — это не совсем новая конструкция; подобные концепции присутствуют и в других языках. Например, схожие с обобщениями черты имеют шаблоны С++. Однако между шаблонами С++ и обобщениями .NET есть большая разница. В С++ при создании экземпляра шаблона с конкретным типом необходим исходный код шаблонов. В отличие от шаблонов С++, обобщения являются не только конструкцией языка C#, но также определены для CLR. Это позволяет создавать экземпляры шаблонов с определенным типом-параметром на языке Visual Basic, даже если обобщенный класс определен на C#.

Подробный курс по языку программирования C#:

Подробный курс по структурам данных на языке программирования C#:

Подробный курс по алгоритмам сортировки на языке C#:

Разговоры о программировании, мотивации, и ответы на IT вопросы:

#программирование #программист #csharp #ityoutubersru #codeblog

source