TGViewer
C# | Вопросы собесов C# | Вопросы собесов @easy_c_sharp · 5.01K subscribers
Post #2089 985
🤔 Что такое Generic-и?

Термин "Generic" (общий тип) относится к функциональности, позволяющей определять классы, интерфейсы или методы с использованием параметра типа, который определяется в момент создания экземпляра класса или вызова метода. Обобщённые типы широко используются для повышения повторного использования кода, типобезопасности и производительности. Как и во многих других языках программирования, generics представляют собой мощный инструмент, который устраняет необходимость в чрезмерном приведении типов и может уменьшить количество дублирующего кода.

🚩Основы

Пример использования Generic-ов в классе
public class GenericList<T>
{
private T[] elements;
private int size;

public GenericList(int size)
{
elements = new T[size];
this.size = size;
}

public void Add(T element)
{
// Логика добавления элемента
}

public T this[int i]
{
get { return elements[i]; }
set { elements[i] = value; }
}
}


Пример использования Generic-ов в методе
public T GenericMax<T>(T x, T y) where T : IComparable
{
return x.CompareTo(y) > 0 ? x : y;
}


🚩Плюсы

➕Повышение переиспользуемости кода
Обобщённые классы и методы могут работать с любым типом данных, что позволяет разработчикам использовать один и тот же код для данных различных типов.

➕Типобезопасность
Generics обеспечивают проверку типов на этапе компиляции. Это улучшает безопасность и стабильность кода, уменьшая риск возникновения ошибок во время выполнения программы из-за некорректного приведения типов.

➕Улучшение производительности

Использование generics может помочь улучшить производительность, т.к. уменьшает необходимость в приведении типов, которое может быть дорогостоящим в плане ресурсов процессора.

Ставь 👍 и забирай 📚 Базу знаний
More from @easy_c_sharp
  1. Oct 12, 2026Post #2482
  2. Oct 12, 2026🤔 Возможно ли как-нибудь ограничить типы, которые пользователь будет передавать через шаб…
  3. Oct 12, 2026🤔 Какие принципы и практики используешь для обеспечения безопасности приложений? 🟠Валида…
  4. Oct 11, 2026Post #2479
  5. Oct 11, 2026🤔 Что такое абстракция? Абстракция — это принцип ООП, который выделяет только важные хара…
  6. Oct 11, 2026🤔 Можно ли передать значимый тип данных по ссылке? Да, можно! По умолчанию значимые типы…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →