#Собес #CSharp
🤔 Что такое частичные классы (Partial Classes) в С#?
Частичные классы в С# позволяют разделять код одного класса на несколько файлов, что полезно для больших классов или когда несколько разработчиков работают над одной частью класса. Для этого используется ключевое слово
👉 Новости 👉 База вопросов
Частичные классы в С# позволяют разделять код одного класса на несколько файлов, что полезно для больших классов или когда несколько разработчиков работают над одной частью класса. Для этого используется ключевое слово
partial.Please open Telegram to view this post
VIEW IN TELEGRAM
👏1
#ЛитКод
Задача: 509. Fibonacci Number
Числа Фибоначчи, обычно обозначаемые как F(n), образуют последовательность, называемую последовательностью Фибоначчи, так что каждое число является суммой двух предыдущих, начиная с 0 и 1. То есть,
F(0) = 0, F(1) = 1
F(n) = F(n - 1) + F(n - 2), для n > 1.
Дано n, вычислите F(n).
Пример:
👨💻 Алгоритм:
1⃣ Проверка начального условия
Если N <= 1, вернуть N.
2⃣ Инициализация переменных
Инициализируйте current значением 0. Инициализируйте prev1 значением 1, что будет представлять fib(N-1) при вычислении текущего значения. Инициализируйте prev2 значением 0, что будет представлять fib(N-2) при вычислении текущего значения.
3⃣ Итерация и вычисление
Итерация от 2 до N включительно. На каждой итерации: установите current как сумму prev1 и prev2. Обновите prev2 значением prev1. Обновите prev1 значением current. Вернуть значение current после завершения итерации.
😎 Решение:
👉 Новости 👉 База вопросов
Задача: 509. Fibonacci Number
Числа Фибоначчи, обычно обозначаемые как F(n), образуют последовательность, называемую последовательностью Фибоначчи, так что каждое число является суммой двух предыдущих, начиная с 0 и 1. То есть,
F(0) = 0, F(1) = 1
F(n) = F(n - 1) + F(n - 2), для n > 1.
Дано n, вычислите F(n).
Пример:
Input: n = 3
Output: 2
Explanation: F(3) = F(2) + F(1) = 1 + 1 = 2.
Если N <= 1, вернуть N.
Инициализируйте current значением 0. Инициализируйте prev1 значением 1, что будет представлять fib(N-1) при вычислении текущего значения. Инициализируйте prev2 значением 0, что будет представлять fib(N-2) при вычислении текущего значения.
Итерация от 2 до N включительно. На каждой итерации: установите current как сумму prev1 и prev2. Обновите prev2 значением prev1. Обновите prev1 значением current. Вернуть значение current после завершения итерации.
public class Solution {
public int Fib(int N) {
if (N <= 1) return N;
int current = 0, prev1 = 1, prev2 = 0;
for (int i = 2; i <= N; i++) {
current = prev1 + prev2;
prev2 = prev1;
prev1 = current;
}
return current;
}
}Please open Telegram to view this post
VIEW IN TELEGRAM
#статьи
👋 «Why C#?» — свежий выпуск от доктора Милана Милановича, Microsoft MVP и эксперта в области программной инженерии
Статья
👉 Новости 👉 База вопросов
Статья
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
📞 В C# 14 (в превью) появился новый ключевой элемент —
Он позволяет писать тело аксессора свойства без явного объявления поля для хранения значения.
Компилятор сам подставит вместо
👉 Новости 👉 База вопросов
fieldОн позволяет писать тело аксессора свойства без явного объявления поля для хранения значения.
Компилятор сам подставит вместо
field автоматически сгенерированное поле.Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес #CSharp
🤔 Что такое расширяющие методы (Extension Methods) в C#?
Расширяющие методы позволяют добавлять новые методы в существующие типы, не изменяя исходный код этих типов. Они используются для улучшения функциональности классов, с которыми нельзя напрямую работать.
👉 Новости 👉 База вопросов
Расширяющие методы позволяют добавлять новые методы в существующие типы, не изменяя исходный код этих типов. Они используются для улучшения функциональности классов, с которыми нельзя напрямую работать.
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🤯 Пример Central Package Management (CPM)
Когда мы указываем версии NuGet-пакетов в одном центральном файле (
👉 Новости 👉 База вопросов
Когда мы указываем версии NuGet-пакетов в одном центральном файле (
Directory.Packages.props), все проекты в решении автоматически используют эти версии. Это упрощает поддержку и предотвращает расхождение версий между проектами.Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😇 Silk.NET 3.0: грядущая революция в .NET-графике
Сообщество Silk.NET анонсировало работу над третьей версией своего фреймворка — амбициозным переосмыслением того, как должны работать низкоуровневые .NET-биндинги для графики и мультимедиа.
Особенность проекта всегда заключалась в кроссплатформенности и минимальных накладных расходах при работе с GPU. В 3.0 разработчики обещают переработанную систему биндингов и улучшенную интеграцию с современными .NET-стэками.
Гитхаб
👉 Новости 👉 База вопросов
Сообщество Silk.NET анонсировало работу над третьей версией своего фреймворка — амбициозным переосмыслением того, как должны работать низкоуровневые .NET-биндинги для графики и мультимедиа.
Особенность проекта всегда заключалась в кроссплатформенности и минимальных накладных расходах при работе с GPU. В 3.0 разработчики обещают переработанную систему биндингов и улучшенную интеграцию с современными .NET-стэками.
Гитхаб
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
#Собес #CSharp
🤔 Что такое делегат с многократной подпиской (Multicasting delegate) в C#?
Делегат с многократной подпиской - это расширение обычного делегата, которое позволяет назначить более одного метода для вызова при срабатывании делегата. Этот тип делегата полезен, когда необходимо выполнить несколько действий с одним событием.
👉 Новости 👉 База вопросов
Делегат с многократной подпиской - это расширение обычного делегата, которое позволяет назначить более одного метода для вызова при срабатывании делегата. Этот тип делегата полезен, когда необходимо выполнить несколько действий с одним событием.
Please open Telegram to view this post
VIEW IN TELEGRAM
YeaHub
YeaHub — тренажер собеседований по IT
5000+ вопросов для подготовки к интервью. Фильтры, квизы, статистика!
#полезное
😊 BotSharp — фреймворк для AI-ассистентов на .NET. Этот open-source фреймворк объединяет чат-ботов, RAG-системы и мультиагентные сценарии в единую платформу с модульной архитектурой.
Особенность инструмента в его ориентации на корпоративные задачи: от интеграции с мессенджерами до работы с базами данных. Проект поддерживалось ChatGPT, Gemini, Claude и других LLM через единый интерфейс, встроенный UI на SvelteKit и инструменты для оценки работы моделей.
Гитхаб
👉 Новости 👉 База вопросов
Особенность инструмента в его ориентации на корпоративные задачи: от интеграции с мессенджерами до работы с базами данных. Проект поддерживалось ChatGPT, Gemini, Claude и других LLM через единый интерфейс, встроенный UI на SvelteKit и инструменты для оценки работы моделей.
Гитхаб
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🫠 Начни использовать Guard Clauses (защитные условия)
🟠 Защитные условия сразу защищают твой код от некорректных состояний.
🟠 Они убирают глубокую вложенность, скрывающую бизнес-логику
🟠 Делают методы читаемыми и линейными — сверху вниз
Обрабатывай ошибки, пограничные случаи и некорректный ввод в самом начале метода
👉 Новости 👉 База вопросов
Обрабатывай ошибки, пограничные случаи и некорректный ввод в самом начале метода
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🫠 Как передать Tenant ID в мультиарендных (multitenant) приложениях?
У вас есть как минимум 3 варианта:
🟠 Заголовок запроса (Request header)
🟠 Cookie
🟠 JWT
В приведённом на фото примере кода Tenant ID извлекается из заголовка HTTP-запроса
Также есть и другие способы получить Tenant ID: передача через строку запроса (query string) или извлечение из claim в удостоверении пользователя
Использование claim-ов, скорее всего, будет самым безопасным способом
Вы даже можете получать Tenant ID из базы данных (но это повлияет на производительность)
После этого можно использовать EF Core для реализации фильтрации по Tenant.
Вот как это делается: читать
👉 Новости 👉 База вопросов
У вас есть как минимум 3 варианта:
В приведённом на фото примере кода Tenant ID извлекается из заголовка HTTP-запроса
Также есть и другие способы получить Tenant ID: передача через строку запроса (query string) или извлечение из claim в удостоверении пользователя
Использование claim-ов, скорее всего, будет самым безопасным способом
Вы даже можете получать Tenant ID из базы данных (но это повлияет на производительность)
После этого можно использовать EF Core для реализации фильтрации по Tenant.
Вот как это делается: читать
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес #CSharp
🤔 В чем разница между методами Dispose и Finalize в С#?
Метод Dispose ИСпОльзуется для явного освобождения ресурсов, которые не управляются сборщиком мусора, и должен быть вызван пользователем. Метод Finalize вызывается сборщиком мусора автоматически перед уничтожением объекта и используется для освобождения ресурсов, которые не были освобождены явно.
👉 Новости 👉 База вопросов
Метод Dispose ИСпОльзуется для явного освобождения ресурсов, которые не управляются сборщиком мусора, и должен быть вызван пользователем. Метод Finalize вызывается сборщиком мусора автоматически перед уничтожением объекта и используется для освобождения ресурсов, которые не были освобождены явно.
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😎 BotSharp — мощный .NET-фреймворк для создания AI-агентов
Хочешь собрать собственного умного ассистента или интегрировать LLM в свой бизнес? Обрати внимание на BotSharp — это open-source фреймворк от SciSharp на .NET Core для создания AI-агентов и чат-ботов
👉 Новости 👉 База вопросов
Хочешь собрать собственного умного ассистента или интегрировать LLM в свой бизнес? Обрати внимание на BotSharp — это open-source фреймворк от SciSharp на .NET Core для создания AI-агентов и чат-ботов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😵💫 Хочешь разрабатывать приложения в Azure? Запомни эти 3 типа облаков
🟠 IAAS – Ты управляешь приложениями и данными, провайдер отвечает за «железо» и сеть.
🟠 PAAS – Провайдер берёт на себя инфраструктуру и ОС, ты просто пишешь код.
🟠 SAAS – Готовые приложения; минимум гибкости, максимум удобства
👉 Новости 👉 База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес #CSharp
🤔 Что такое события в С#?
Событие в С# — это уведомление о том, что произошел какой-то действительный процесс или событие. События в С# построены на основе делегатов, которые позволяют регистрировать обработчики событий. Когда событие возникает, все зарегистрированные обработчики вызываются. События объявляются с помощью ключевого слова event , и обработчики событий представляют собой делегаты.
👉 Новости 👉 База вопросов
Событие в С# — это уведомление о том, что произошел какой-то действительный процесс или событие. События в С# построены на основе делегатов, которые позволяют регистрировать обработчики событий. Когда событие возникает, все зарегистрированные обработчики вызываются. События объявляются с помощью ключевого слова event , и обработчики событий представляют собой делегаты.
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
#полезное
😊 Один простой хак для продуктивности умных C#-разработчиков
Создавай сразу несколько классов в Visual Studio
Как это сделать?
В окне «Добавить новый элемент» просто введи несколько названий классов, разделяя их запятыми
👉 Новости 👉 База вопросов
Создавай сразу несколько классов в Visual Studio
Как это сделать?
В окне «Добавить новый элемент» просто введи несколько названий классов, разделяя их запятыми
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2
#полезное
📞 Пример SQL-запроса, который генерирует Entity Framework для вставки в SQL Server
Обрати внимание на использование оператора
Такой подход выбран из соображений производительности
👉 Новости 👉 База вопросов
Обрати внимание на использование оператора
MERGE, который изначально предназначался для объединения двух таблицТакой подход выбран из соображений производительности
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
❤️🔥 Фишка в Visual Studio для C# разработчиков — быстрое превращение JSON в классы, без онлайн-сервисов:
Просто скопируй JSON, зайди в Edit → Paste Special → Paste JSON as Classes — и Visual Studio сама сгенерит нужные классы.
👉 Новости 👉 База вопросов
Просто скопируй JSON, зайди в Edit → Paste Special → Paste JSON as Classes — и Visual Studio сама сгенерит нужные классы.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
#Собес #CSharp
🤔 Как реализовать паттерн Singleton в С#?
В С# можно реализовать паттерн Singleton несколькими способами, включая:
🟠 Не потокобезопасный Singleton.
🟠 Потокобезопасный Singleton.
🟠 Потокобезопасный Singleton с двойной проверкой блокировки.
🟠 Singleton без блокировки.
🟠 Использование типа Lazy<T› из .NET 4.0 для ленивой инициализации.
👉 Новости 👉 База вопросов
В С# можно реализовать паттерн Singleton несколькими способами, включая:
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1