Да, можно. В C# для ограничения (ограничений) обобщённых типов используется ключевое слово where.
Примеры ограничений:
- where T : class — только ссылочные типы.
- where T : struct — только значимые типы.
- where T : new() — должен иметь публичный конструктор без параметров.
- where T : BaseClass — должен быть наследником BaseClass.
- where T : interfaceName — должен реализовывать указанный интерфейс.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥1
Anonymous Quiz
54%
Task
27%
Task
5%
void
14%
T
💊57🤔5👍4
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
Anonymous Quiz
77%
Where
11%
Filter
4%
Select
7%
OrderBy
Anonymous Quiz
68%
new CancellationTokenSource()
22%
CancellationTokenSource.Create()
9%
CancellationTokenSource.New()
1%
CancellationTokenSource.Init()
Dependency Injection (внедрение зависимостей) — это встроенный механизм, с помощью которого
- Создаёт и управляет зависимостями (объектами).
- Позволяет вкладывать зависимости в конструкторы или методы.
- Использует контейнер служб, где регистрируются интерфейсы и реализации.
DI позволяет отделить создание объектов от их использования, улучшая тестируемость и масштабируемость.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Anonymous Quiz
10%
System.FileLoadException
21%
System.FileNotFoundException
64%
System.IOException
5%
System.DirectoryNotFoundException
Anonymous Quiz
32%
int[] clone = (int[])numbers.Clone();
54%
int[] clone = numbers.Copy();
5%
int[] clone = numbers.Duplicate();
8%
int[] clone = Array.Replicate(numbers);
💊4
- private — доступен только внутри текущего класса.
- protected — доступен внутри текущего класса и его наследников.
private обеспечивает максимальную инкапсуляцию, а protected позволяет наследникам переопределять поведение или использовать базовые методы.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Anonymous Quiz
84%
Trim
11%
Strip
2%
Clean
2%
Remove
👍1
Anonymous Quiz
24%
Select
5%
Filter
68%
Where
3%
Find
Extension-методы позволяют добавлять методы к существующим типам, не изменяя их исходный код. Это:
- Делается с помощью static-класса и ключевого слова this перед параметром.
- Вызывается как обычный метод у объекта.
Это делает код более читаемым и расширяемым. Особенно полезны в LINQ и утилитарных сценариях.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
Anonymous Quiz
48%
File.Copy
14%
File.CopyAsync
6%
File.Move
31%
File.Replace
Anonymous Quiz
59%
IndexOf()
34%
Find()
3%
Search()
3%
Locate()
💊3
Когда компоненту нужен другой класс (зависимость), он объявляет интерфейс в своём конструкторе, а контейнер DI:
- Ищет зарегистрированную реализацию этого интерфейса.
- Создаёт экземпляр и передаёт его в зависимый класс.
Такой механизм называется инъекция через конструктор, и он наиболее распространён.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
💊1
Anonymous Quiz
58%
Add
15%
Enqueue
17%
Push
10%
Insert
💊1
Anonymous Quiz
17%
Коллекция обновится без проблем
45%
Будет выброшено исключение InvalidOperationException
26%
Элемент будет добавлен, но не виден в текущей итерации
12%
Коллекция будет автоматически перерасчитана
Interceptor — это механизм, позволяющий вмешиваться в выполнение операций (например, запросов, логики работы, логирования) до или после их исполнения.
В .NET и EF Core interceptors применяются для:
- Логирования SQL-запросов
- Модификации поведения БД
- Аудита действий
Это своего рода «прослойка» между системой и реальным выполнением.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Anonymous Quiz
61%
await MyMethodAsync()
12%
MyMethodAsync().Wait()
18%
MyMethodAsync().Result
8%
await MyMethod()
💊12
Anonymous Quiz
6%
async
8%
wait
84%
await
1%
task
💊1