Каковы особенности переменных, доступных только для чтения?
👾 — Инициализируются во время выполнения
👍 — Могут использоваться со статическими модификаторами
🥰 — Объявляются только на уровне класа
🥱 — Все вышеперечисленное
Библиотека задач по C#
👾 — Инициализируются во время выполнения
👍 — Могут использоваться со статическими модификаторами
🥰 — Объявляются только на уровне класа
🥱 — Все вышеперечисленное
Библиотека задач по C#
🥱19👾2
Зачем использовать IHttpClientFactory вместо создания нового HttpClient на каждый запрос?
👾 — Чтобы отключить DNS-кеш и ускорить повторы
👍 — Чтобы переиспользовать SocketsHttpHandler, избежать socket exhaustion и централизовать политики таймаутов/ретраев
🥰 — Чтобы все запросы шли через один и тот же IP
⚡️ — Чтобы сделать запросы синхронными и без аллокаций
Библиотека задач по C#
👾 — Чтобы отключить DNS-кеш и ускорить повторы
👍 — Чтобы переиспользовать SocketsHttpHandler, избежать socket exhaustion и централизовать политики таймаутов/ретраев
🥰 — Чтобы все запросы шли через один и тот же IP
⚡️ — Чтобы сделать запросы синхронными и без аллокаций
Библиотека задач по C#
👍15
Когда уместно async void?
👾 — Для «fire-and-forget» в сервисах
👍 — Только для обработчиков событий; в остальном возвращайте Task
🥰 — Чтобы скрывать исключения из вызвавшего кода
⚡️ — Когда нужно вернуть значение синхронно
Библиотека задач по C#
👾 — Для «fire-and-forget» в сервисах
👍 — Только для обработчиков событий; в остальном возвращайте Task
🥰 — Чтобы скрывать исключения из вызвавшего кода
⚡️ — Когда нужно вернуть значение синхронно
Библиотека задач по C#
👍29👾3⚡1🥰1
C#-навигация прямо в браузере? Да, теперь и такое есть! 👀
Для тех, кто работает с C#, приятные новости от SourceCraft. Платформа добавила умную навигацию, которая понимает связи между функциями и позволяет переходить по объявлениям прямо в веб-интерфейсе — как в вашей любимой IDE. 🔥
А ИИ-ассистент теперь дописывает методы на C
не изолированно, а в контексте всего проекта. Для команд с разнесёнными код-ревью или для быстрого онбординга новичков — просто находка. Можно даже коммитить правки из браузера, не теряя типизацию.
Для тех, кто работает с C#, приятные новости от SourceCraft. Платформа добавила умную навигацию, которая понимает связи между функциями и позволяет переходить по объявлениям прямо в веб-интерфейсе — как в вашей любимой IDE. 🔥
А ИИ-ассистент теперь дописывает методы на C
не изолированно, а в контексте всего проекта. Для команд с разнесёнными код-ревью или для быстрого онбординга новичков — просто находка. Можно даже коммитить правки из браузера, не теряя типизацию.
Зачем указывать RunContinuationsAsynchronously у TaskCompletionSource?
👾 — Чтобы продолжения выполнялись синхронно при SetResult
👍 — Чтобы не исполнять продолжения синхронно в потоке SetResult, а планировать их асинхронно, избегая дедлоков и глубоких стеков
🥰 — Чтобы запретить отмену задач
⚡️ — Чтобы обойти планировщик и ускорить завершение
Библиотека задач по C#
👾 — Чтобы продолжения выполнялись синхронно при SetResult
👍 — Чтобы не исполнять продолжения синхронно в потоке SetResult, а планировать их асинхронно, избегая дедлоков и глубоких стеков
🥰 — Чтобы запретить отмену задач
⚡️ — Чтобы обойти планировщик и ускорить завершение
Библиотека задач по C#
👍10
Почему lock(this) — антипаттерн?
👾 — Блокирует сборщик мусора
👍 — Публичный монитор: внешний код может тоже его захватить → риск дедлоков; используйте приватный объект (private readonly object _gate = new();)
🥰 — Потому что this не является ссылочным типом
⚡️ — Потому что lock — это всегда spinlock без ожидания
Библиотека задач по C#
👾 — Блокирует сборщик мусора
👍 — Публичный монитор: внешний код может тоже его захватить → риск дедлоков; используйте приватный объект (private readonly object _gate = new();)
🥰 — Потому что this не является ссылочным типом
⚡️ — Потому что lock — это всегда spinlock без ожидания
Библиотека задач по C#
👍13
✨ Halloween Special — последний день магии! 👻
Успевай сегодня купить курсы со скидкой 40%!
А также участвуй в розыгрыше MacBook Pro 14 💻
После полуночи останется только тыква 🎃
🔮 Открой портал и выбери курс
Успевай сегодня купить курсы со скидкой 40%!
А также участвуй в розыгрыше MacBook Pro 14 💻
После полуночи останется только тыква 🎃
🔮 Открой портал и выбери курс
Что важно для ключей Dictionary<TKey, TValue> при TKey-структуре?
👾 — Переопределять только ToString()
👍 — Иммутабельность и корректные Equals/GetHashCode без зависимости от изменяемых полей
🥰 — Разрешить менять поля после вставки — хеш пересчитается автоматически
⚡️ — Достаточно реализовать IComparable<T>
Библиотека задач по C#
👾 — Переопределять только ToString()
👍 — Иммутабельность и корректные Equals/GetHashCode без зависимости от изменяемых полей
🥰 — Разрешить менять поля после вставки — хеш пересчитается автоматически
⚡️ — Достаточно реализовать IComparable<T>
Библиотека задач по C#
👍14👾1
👾39
Каковы отличия между Finalize и Dispose?
Dispose предоставляет явный контроль над ресурсами, которые использует объект, в то время как Finalize работает неявно и управляется сборщиком мусора.
Библиотека задач по C#
Dispose предоставляет явный контроль над ресурсами, которые использует объект, в то время как Finalize работает неявно и управляется сборщиком мусора.
Библиотека задач по C#
👍1