Sobes.tech
Junior

Какво са обобщените типове (Generic) в C#?

sobes.tech AI

Отговор от AI

Обобщените типове (Generic) в C# позволяват да дефинирате класове, структури, интерфейси, делегати и методи с параметри на типове. Това предоставя възможност за повторно използване на кода и повишаване на типовата безопасност.

Основни предимства:

  • Повторно използване на код: Единичен клас или метод може да работи с различни типове данни без дублиране на логика.
  • Типова безопасност: Компилаторът проверява типовете по време на компилация, предотвратявайки грешки по време на изпълнение, свързани с несъответствие на типове.
  • Производителност: За стойностните типове (struct) не се извършва boxing, което подобрява производителността в сравнение с използването на object.

Принципи на работа:

  • Параметри на типове: Определят се с използване на ъглови скоби <T>, където T е името на параметъра на типа. Може да се използва всяко име, но T е обичайното.
  • Създаване на екземпляри: При създаване на екземпляр на обобщен тип трябва да се посочи конкретен тип данни за всеки параметър на типа.
  • Ограничения (Constraints): Могат да се налагат ограничения върху параметрите на типа, указвайки какви възможности трябва да поддържат типовете (например, реализиране на интерфейс, базов клас, липса на конструктор).

Пример за използване на обобщения клас List<T>:

// Създаване на списък с цели числа
List<int> numbers = new List<int>();
numbers.Add(1);
numbers.Add(2);

// Създаване на списък със стрингове
List<string> names = new List<string>();
names.Add("Alice");
names.Add("Bob");