TGViewer
C# | Вопросы собесов C# | Вопросы собесов @easy_c_sharp · 5.01K subscribers
Post #2078 1.03K
🤔 Возможно ли как-нибудь ограничить типы, которые пользователь будет передавать через шаблон?

Можно ограничить типы, которые передаются в шаблоны (generics), с помощью ключевого слова where. Это позволяет указать, какие типы подходят для использования, обеспечивая безопасность и предсказуемость кода. Вот основные виды ограничений:

🟠Класс или структура
where T : class — только классы.
where T : struct — только структуры.

🟠Интерфейс
Указание интерфейса, который должен реализовать тип:

   public class MyClass<T> where T : IDisposable { }


🟠Базовый класс
Указание, что тип должен быть наследником определённого класса:

   public class MyClass<T> where T : Exception { }


🟠Конструктор
Ограничение на наличие конструктора без параметров:

   public class MyClass<T> where T : new() { }


🟠Комбинированные ограничения
Можно объединять несколько условий:

   public class MyClass<T> where T : class, IDisposable, new() { }


Ставь 👍 и забирай 📚 Базу знаний
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 →