#Собес #CSharp
🤔 Что такое рефлексия (Reflection) в С#?
Рефлексия в С# — это процесс получения информации о типах, методах, свойствах и других элементах программы во время выполнения. Для этого используется пространство имен
👉 Новости 👉 База вопросов
Рефлексия в С# — это процесс получения информации о типах, методах, свойствах и других элементах программы во время выполнения. Для этого используется пространство имен
System. Reflection.Please open Telegram to view this post
VIEW IN TELEGRAM
#ЛитКод
Задача: 503. Next Greater Element II
Дан циклический массив целых чисел nums (т.е. следующий элемент после nums[nums.length - 1] это nums[0]), верните следующее большее число для каждого элемента в nums.
Следующее большее число для числа x — это первое большее число, следующее за ним в порядке обхода массива, что означает, что вы можете искать циклически, чтобы найти следующее большее число. Если оно не существует, верните -1 для этого числа.
Пример:
👨💻 Алгоритм:
1⃣ Инициализация
Создайте массив res той же длины, что и nums, и заполните его значениями -1.
2⃣ Поиск следующего большего элемента
Для каждого элемента nums[i], используя индекс j, ищите следующий больший элемент среди следующих (циклически) n-1 элементов. Если найден больший элемент, обновите res[i] и прервите внутренний цикл.
3⃣ Возврат результата
Верните массив res.
😎 Решение:
👉 Новости 👉 База вопросов
Задача: 503. Next Greater Element II
Дан циклический массив целых чисел nums (т.е. следующий элемент после nums[nums.length - 1] это nums[0]), верните следующее большее число для каждого элемента в nums.
Следующее большее число для числа x — это первое большее число, следующее за ним в порядке обхода массива, что означает, что вы можете искать циклически, чтобы найти следующее большее число. Если оно не существует, верните -1 для этого числа.
Пример:
Input: nums = [1,2,1]
Output: [2,-1,2]
Explanation: The first 1's next greater number is 2;
The number 2 can't find next greater number.
The second 1's next greater number needs to search circularly, which is also 2.
Создайте массив res той же длины, что и nums, и заполните его значениями -1.
Для каждого элемента nums[i], используя индекс j, ищите следующий больший элемент среди следующих (циклически) n-1 элементов. Если найден больший элемент, обновите res[i] и прервите внутренний цикл.
Верните массив res.
public class Solution {
public int[] NextGreaterElements(int[] nums) {
int n = nums.Length;
int[] res = new int[n];
Array.Fill(res, -1);
for (int i = 0; i < n; i++) {
for (int j = 1; j < n; j++) {
if (nums[(i + j) % n] > nums[i]) {
res[i] = nums[(i + j) % n];
break;
}
}
}
return res;
}
}Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🤓 OpenAI выпустила Codex CLI — опенсорс агента ИИ
Лицензия Apache 2.0. Легко запускается локально и превращает командную строку в среду программирования на естественном языке.
👉 Новости 👉 База вопросов
Лицензия Apache 2.0. Легко запускается локально и превращает командную строку в среду программирования на естественном языке.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
#Собес #CSharp
🤔 Какие существуют способы перегрузки методов в С#?
Перегрузка методов в С# позволяет создавать несколько методов с одинаковыми именами, но с различными параметрами. Методы могут отличаться по числу параметров, их порядку или типам данных
👉 Новости 👉 База вопросов
Перегрузка методов в С# позволяет создавать несколько методов с одинаковыми именами, но с различными параметрами. Методы могут отличаться по числу параметров, их порядку или типам данных
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😊 Версионирование API в .NET 9
В .NET 9 ты можешь гибко управлять версиями API — хоть в контроллерах, хоть в минималках:
🟠 URL-версионирование —
🟠 Query string —
🟠 Заголовок HTTP —
🟠 Тип медиа —
Подключи нужные пакеты:
Поддержка версионирования:
🟠 В контроллерах
🟠 В минимальных API
Старые версии можно объявить устаревшими.
👉 Новости 👉 База вопросов
В .NET 9 ты можешь гибко управлять версиями API — хоть в контроллерах, хоть в минималках:
/api/v1/orders, /api/v2/orders/api/orders?api-version=1 X-Api-Version: 1application/vnd.myapi.v1+json
Подключи нужные пакеты:
Asp.Versioning.Http
Asp.Versioning.Mvc
Asp.Versioning.Mvc.ApiExplorer
Поддержка версионирования:
Старые версии можно объявить устаревшими.
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😬 Новинка: Incrementalist 1.0 — инструмент инкрементальной сборки для .NET, который использует git diff (через libgit2sharp) и Roslyn для анализа изменений и зависимостей в коде, чтобы значительно сократить время сборки и тестирования в больших .NET-решениях и монорепозиториях.
Хотя его использовали и раньше, но только сейчас инструмент получил полноценный интерфейс командной строки
👉 Новости 👉 База вопросов
Хотя его использовали и раньше, но только сейчас инструмент получил полноценный интерфейс командной строки
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
#полезное
😐 Как использовать
Тык сюда
👉 Новости 👉 База вопросов
Spectre.Console в ASP.NET Core для выделения важных разделов в консолиТык сюда
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
#Собес #CSharp
🤔 В чем разница между поздним связыванием (late binding) и ранним связыванием (early binding) в С#?
Раннее связывание происходит на этапе компиляции, когда типы объектов и их методы известны, что делает выполнение быстрее. Позднее связывание происходит на этапе выполнения, когда типы объектов определяются динамически, что может замедлить выполнение.
👉 Новости 👉 База вопросов
Раннее связывание происходит на этапе компиляции, когда типы объектов и их методы известны, что делает выполнение быстрее. Позднее связывание происходит на этапе выполнения, когда типы объектов определяются динамически, что может замедлить выполнение.
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🛞 SharpRedirect — это инструмент на основе .NET Framework, разработанный для перенаправления сетевого трафика!
Он принимает входящие TCP-подключения на локальный порт и пересылает их на указанный удалённый хост и порт. Приложение поддерживает двустороннюю передачу данных в полном дуплексе, обеспечивая стабильную и асинхронную работу для повышения производительности.
Гитхаб
👉 Новости 👉 База вопросов
Он принимает входящие TCP-подключения на локальный порт и пересылает их на указанный удалённый хост и порт. Приложение поддерживает двустороннюю передачу данных в полном дуплексе, обеспечивая стабильную и асинхронную работу для повышения производительности.
Гитхаб
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😎 Wexflow — это мощная платформа для автоматизации рабочих процессов с открытым исходным кодом. Она позволяет автоматизировать задачи, такие как обработка файлов, отправка уведомлений, резервное копирование, интеграция с различными API и многое другое
Wexflow обладает рядом функций, включая интеграцию с базами данных и облачными сервисами, поддержку различных форматов данных и протоколов, а также собственным приложением для Android!
Гитхаб
👉 Новости 👉 База вопросов
Wexflow обладает рядом функций, включая интеграцию с базами данных и облачными сервисами, поддержку различных форматов данных и протоколов, а также собственным приложением для Android!
Гитхаб
Please open Telegram to view this post
VIEW IN TELEGRAM
#новости
👨💻 Обновлённый инструмент GitHub Copilot для .NET скоро выйдет
Сейчас находится в закрытом предварительном просмотре —но можно подать заявку на участие в программе раннего доступа: клик
Может действовать автономно, без необходимости подтверждать каждое действие, так как будет поддерживать режим агента Copilot, который скоро появится в Visual Studio
👉 Новости 👉 База вопросов
Сейчас находится в закрытом предварительном просмотре —но можно подать заявку на участие в программе раннего доступа: клик
Может действовать автономно, без необходимости подтверждать каждое действие, так как будет поддерживать режим агента Copilot, который скоро появится в Visual Studio
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес #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+ вопросов для подготовки к интервью. Фильтры, квизы, статистика!